日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

学习mysql_day2

發(fā)布時(shí)間:2023/12/14 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 学习mysql_day2 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

數(shù)據(jù)庫(kù)環(huán)境準(zhǔn)備:

創(chuàng)建數(shù)據(jù)庫(kù)

create database mysql_demo1 charset=utf8;

MariaDB [(none)]> create database mysql_demo1 charset=utf8; Query OK, 1 row affected (0.00 sec)
使用數(shù)據(jù)庫(kù)

use mysql_demo1;

MariaDB [(none)]> use mysql_demo1; Database changed
創(chuàng)建表參數(shù)
unsigned 整型無(wú)符號(hào) signed  整型有符號(hào) primary key 詳解參考:http://c.biancheng.net/view/2440.html foreign key 詳解參考:http://c.biancheng.net/view/2441.html unique key 詳解參考:http://c.biancheng.net/view/2445.html auto_increment 自增字段 not null 不為空 default 默認(rèn)值 int int類型 char 存儲(chǔ)字符串 varchar  存儲(chǔ)字符串(char是屬于固定長(zhǎng)度的字符類型,而varchar是屬于可變長(zhǎng)度的字符類型。) tinyint 型的字段如果不設(shè)置UNSIGNED類型,存儲(chǔ)-128127的整數(shù)。 (tinyint(1)tinyint(),tinyint(3),tinyint(4)(稍后詳解) DECIMAL (5,2)規(guī)定了存儲(chǔ)的值將不會(huì)超過(guò)5位數(shù)字,開(kāi)且小數(shù)點(diǎn)后面有2位數(shù)字。 enum 枚舉類型 添加新的數(shù)據(jù)不為這四個(gè)值則會(huì)報(bào)錯(cuò) bit 利用它可定義一個(gè)位變量,但不能定義位指針,也不能定義位數(shù)組。它的值是一個(gè)二進(jìn)制位,不是0就是1,類似Boolean類型中的TrueFalse
創(chuàng)建students表
create table students(id int unsigned primary key auto_increment not null,name varchar(20) default '',age tinyint unsigned default 0,height decimal(5,2),gender enum('男','女','中性','保密') default '保密',cls_id int unsigned default 0,is_delete bit default 0 ); MariaDB [mysql_demo1]> create table students(-> id int unsigned primary key auto_increment not null,-> name varchar(20) default '',-> age tinyint unsigned default 0,-> height decimal(5,2),-> gender enum('男','女','中性','保密') default '保密',-> cls_id int unsigned default 0,-> is_delete bit default 0-> ); Query OK, 0 rows affected (0.01 sec)
創(chuàng)建classes表

create table classes(
id int unsigned auto_increment primary key not null,
name varchar(30) not null
);

MariaDB [mysql_demo1]> create table classes(-> id int unsigned auto_increment primary key not null,-> name varchar(30) not null-> ); Query OK, 0 rows affected (0.00 sec)
查看表是否創(chuàng)建成功

show tables;

MariaDB [mysql_demo1]> show tables; +-----------------------+ | Tables_in_mysql_demo1 | +-----------------------+ | classes | | students | +-----------------------+ 2 rows in set (0.00 sec)

準(zhǔn)備數(shù)據(jù):

向students表中插入數(shù)據(jù)

insert into students values
(0,‘小明’,18,180.00,1,1,0),
(0,‘小張’,18,160.00,1,2,0),
(0,‘小紅’,20,170.00,2,1,0),
(0,‘周杰’,38,175.00,1,1,0),
(0,‘彭玉宴’,56,150.00,1,2,0),
(0,‘劉德化’,29,150.00,1,2,0),
(0,‘張學(xué)友’,36,180.00,1,1,0),
(0,‘周杰倫’,25,166.00,1,1,0),
(0,‘風(fēng)姐’,16,169.00,2,1,0),
(0,‘王小明’,57,162.00,1,2,1),
(0,‘張小華’,46,173.00,2,1,0),
(0,‘金星’,29,175.00,2,1,1),
(0,‘黃蓉’,66,185.00,3,2,0),
(0,‘古天樂(lè)’,15,186.00,4,2,0),
(0,‘劉小海’,31,175.00,4,1,0),
(0,‘小月月’,57,163.00,2,1,0);

MariaDB [mysql_demo1]> insert into students values-> (0,'小明',18,180.00,1,1,0),-> (0,'小張',18,160.00,1,2,0),-> (0,'小紅',20,170.00,2,1,0),-> (0,'周杰',38,175.00,1,1,0),-> (0,'彭玉宴',56,150.00,1,2,0),-> (0,'劉德化',29,150.00,1,2,0),-> (0,'張學(xué)友',36,180.00,1,1,0),-> (0,'周杰倫',25,166.00,1,1,0),-> (0,'風(fēng)姐',16,169.00,2,1,0),-> (0,'王小明',57,162.00,1,2,1),-> (0,'張小華',46,173.00,2,1,0),-> (0,'金星',29,175.00,2,1,1),-> (0,'黃蓉',66,185.00,3,2,0),-> (0,'古天樂(lè)',15,186.00,4,2,0),-> (0,'劉小海',31,175.00,4,1,0),-> (0,'小月月',57,163.00,2,1,0); Query OK, 16 rows affected (0.00 sec) Records: 16 Duplicates: 0 Warnings: 0
向classes表插入數(shù)據(jù)

insert into classes values
(0, “python_01期”),
(0, “python_02期”);

MariaDB [mysql_demo1]> insert into classes values -> (0, "python_01期"), -> (0, "python_02期"); Query OK, 2 rows affected (0.00 sec) Records: 2 Duplicates: 0 Warnings: 0
查詢所有字段

select * from 表名; (也驗(yàn)證一下上面數(shù)據(jù)是否插入成功)
select * from students;
select * from classes;

MariaDB [mysql_demo1]> select * from students; +----+-----------+------+--------+--------+--------+-----------+ | id | name | age | height | gender | cls_id | is_delete | +----+-----------+------+--------+--------+--------+-----------+ | 1 | 小明 | 18 | 180.00 || 1 | | | 2 | 小張 | 18 | 160.00 || 2 | | | 3 | 小紅 | 20 | 170.00 || 1 | | | 4 | 周杰 | 38 | 175.00 || 1 | | | 5 | 彭玉宴 | 56 | 150.00 || 2 | | | 6 | 劉德化 | 29 | 150.00 || 2 | | | 7 | 張學(xué)友 | 36 | 180.00 || 1 | | | 8 | 周杰倫 | 25 | 166.00 || 1 | | | 9 | 風(fēng)姐 | 16 | 169.00 || 1 | | | 10 | 王小明 | 57 | 162.00 || 2 | | | 11 | 張小華 | 46 | 173.00 || 1 | | | 12 | 金星 | 29 | 175.00 || 1 | | | 13 | 黃蓉 | 66 | 185.00 | 中性 | 2 | | | 14 | 古天樂(lè) | 15 | 186.00 | 保密 | 2 | | | 15 | 劉小海 | 31 | 175.00 | 保密 | 1 | | | 16 | 小月月 | 57 | 163.00 || 1 | | +----+-----------+------+--------+--------+--------+-----------+ 16 rows in set (0.00 sec)MariaDB [mysql_demo1]> select * from classes; +----+--------------+ | id | name | +----+--------------+ | 1 | python_01期 | | 2 | python_02期 | +----+--------------+ 2 rows in set (0.00 sec)
查詢指定字段

select 列1,列2,… from 表名;
select name,age from students;

MariaDB [mysql_demo1]> select name,age from students; +-----------+------+ | name | age | +-----------+------+ | 小明 | 18 | | 小張 | 18 | | 小紅 | 20 | | 周杰 | 38 | | 彭玉宴 | 56 | | 劉德化 | 29 | | 張學(xué)友 | 36 | | 周杰倫 | 25 | | 風(fēng)姐 | 16 | | 王小明 | 57 | | 張小華 | 46 | | 金星 | 29 | | 黃蓉 | 66 | | 古天樂(lè) | 15 | | 劉小海 | 31 | | 小月月 | 57 | +-----------+------+ 16 rows in set (0.00 sec)
使用 as 給字段起別名 作用于當(dāng)前語(yǔ)句

select 字段 as 名字… from 表名;
select name as 名字,age as 年齡 from students;

MariaDB [mysql_demo1]> select name as 名字,age as 年齡 from students; +-----------+-------------+ | 名字 | as 年齡 | +-----------+-------------+ | 小明 | 18 | | 小張 | 18 | | 小紅 | 20 | | 周杰 | 38 | | 彭玉宴 | 56 | | 劉德化 | 29 | | 張學(xué)友 | 36 | | 周杰倫 | 25 | | 風(fēng)姐 | 16 | | 王小明 | 57 | | 張小華 | 46 | | 金星 | 29 | | 黃蓉 | 66 | | 古天樂(lè) | 15 | | 劉小海 | 31 | | 小月月 | 57 | +-----------+-------------+ 16 rows in set (0.00 sec)
使用 as 給表名起別名 作用于當(dāng)前語(yǔ)句

select 表別名.字段1,表別名.字段2 from 表 as 表別名;
select s.name,s.age from students as s;

MariaDB [mysql_demo1]> select s.name,s.age from students as s; +-----------+------+ | name | age | +-----------+------+ | 小明 | 18 | | 小張 | 18 | | 小紅 | 20 | | 周杰 | 38 | | 彭玉宴 | 56 | | 劉德化 | 29 | | 張學(xué)友 | 36 | | 周杰倫 | 25 | | 風(fēng)姐 | 16 | | 王小明 | 57 | | 張小華 | 46 | | 金星 | 29 | | 黃蓉 | 66 | | 古天樂(lè) | 15 | | 劉小海 | 31 | | 小月月 | 57 | +-----------+------+ 16 rows in set (0.00 sec)
跨表查詢 這種查不準(zhǔn)不常用

select students.name,classes.name from students,classes;

MariaDB [mysql_demo1]> select students.name,classes.name from students,classes; +-----------+--------------+ | name | name | +-----------+--------------+ | 小明 | python_01期 | | 小明 | python_02期 | | 小張 | python_01期 | | 小張 | python_02期 | | 小紅 | python_01期 | | 小紅 | python_02期 | | 周杰 | python_01期 | | 周杰 | python_02期 | | 彭玉宴 | python_01期 | | 彭玉宴 | python_02期 | | 劉德化 | python_01期 | | 劉德化 | python_02期 | | 張學(xué)友 | python_01期 | | 張學(xué)友 | python_02期 | | 周杰倫 | python_01期 | | 周杰倫 | python_02期 | | 風(fēng)姐 | python_01期 | | 風(fēng)姐 | python_02期 | | 王小明 | python_01期 | | 王小明 | python_02期 | | 張小華 | python_01期 | | 張小華 | python_02期 | | 金星 | python_01期 | | 金星 | python_02期 | | 黃蓉 | python_01期 | | 黃蓉 | python_02期 | | 古天樂(lè) | python_01期 | | 古天樂(lè) | python_02期 | | 劉小海 | python_01期 | | 劉小海 | python_02期 | | 小月月 | python_01期 | | 小月月 | python_02期 | +-----------+--------------+ 32 rows in set (0.00 sec)
distinct 消除重復(fù)行 也就是指定列的不重復(fù)的值

以students為例 里面有四個(gè)性別 我們查詢出來(lái)
select distinct gender from students;

MariaDB [mysql_demo1]> select distinct gender from students; +--------+ | gender | +--------+ || || | 中性 | | 保密 | +--------+ 4 rows in set (0.00 sec)

如果distinct后有多個(gè)字段, 只有當(dāng)查詢的多列的查詢結(jié)果完全相同才能去重

查詢age 大于18歲的所有數(shù)據(jù)

select * from students where age > 18;

MariaDB [mysql_demo1]> select * from students where age > 18; +----+-----------+------+--------+--------+--------+-----------+ | id | name | age | height | gender | cls_id | is_delete | +----+-----------+------+--------+--------+--------+-----------+ | 3 | 小紅 | 20 | 170.00 || 1 | | | 4 | 周杰 | 38 | 175.00 || 1 | | | 5 | 彭玉宴 | 56 | 150.00 || 2 | | | 6 | 劉德化 | 29 | 150.00 || 2 | | | 7 | 張學(xué)友 | 36 | 180.00 || 1 | | | 8 | 周杰倫 | 25 | 166.00 || 1 | | | 10 | 王小明 | 57 | 162.00 || 2 | | | 11 | 張小華 | 46 | 173.00 || 1 | | | 12 | 金星 | 29 | 175.00 || 1 | | | 13 | 黃蓉 | 66 | 185.00 | 中性 | 2 | | | 15 | 劉小海 | 31 | 175.00 | 保密 | 1 | | | 16 | 小月月 | 57 | 163.00 || 1 | | +----+-----------+------+--------+--------+--------+-----------+
查詢age 大于18 小于40的所有數(shù)據(jù) 有兩種方法

select * from students where age > 18 and age < 40;
select * from students where age between 18 and 40;
注意兩種不同之處 between是并等于條件

MariaDB [mysql_demo1]> select * from students where age > 18 and age < 40; +----+-----------+------+--------+--------+--------+-----------+ | id | name | age | height | gender | cls_id | is_delete | +----+-----------+------+--------+--------+--------+-----------+ | 3 | 小紅 | 20 | 170.00 || 1 | | | 4 | 周杰 | 38 | 175.00 || 1 | | | 6 | 劉德化 | 29 | 150.00 || 2 | | | 7 | 張學(xué)友 | 36 | 180.00 || 1 | | | 8 | 周杰倫 | 25 | 166.00 || 1 | | | 12 | 金星 | 29 | 175.00 || 1 | | | 15 | 劉小海 | 31 | 175.00 | 保密 | 1 | | +----+-----------+------+--------+--------+--------+-----------+ 7 rows in set (0.00 sec) MariaDB [mysql_demo1]> select * from students where age between 18 and 40; +----+-----------+------+--------+--------+--------+-----------+ | id | name | age | height | gender | cls_id | is_delete | +----+-----------+------+--------+--------+--------+-----------+ | 1 | 小明 | 18 | 180.00 || 1 | | | 2 | 小張 | 18 | 160.00 || 2 | | | 3 | 小紅 | 20 | 170.00 || 1 | | | 4 | 周杰 | 38 | 175.00 || 1 | | | 6 | 劉德化 | 29 | 150.00 || 2 | | | 7 | 張學(xué)友 | 36 | 180.00 || 1 | | | 8 | 周杰倫 | 25 | 166.00 || 1 | | | 12 | 金星 | 29 | 175.00 || 1 | | | 15 | 劉小海 | 31 | 175.00 | 保密 | 1 | | +----+-----------+------+--------+--------+--------+-----------+ 9 rows in set (0.00 sec)
查詢age 大于18小于40的所有女性的數(shù)據(jù)

select * from students where age between 18 and 40 and gender=‘女’;

MariaDB [mysql_demo1]> select * from students where age between 18 and 40 and gender='女'; +----+--------+------+--------+--------+--------+-----------+ | id | name | age | height | gender | cls_id | is_delete | +----+--------+------+--------+--------+--------+-----------+ | 3 | 小紅 | 20 | 170.00 || 1 | | | 12 | 金星 | 29 | 175.00 || 1 | | +----+--------+------+--------+--------+--------+-----------+ 2 rows in set (0.00 sec)
order by 排序 asc正序 desc倒序 查詢男性身高從高到底查詢

select * from students where gender=‘男’ order by height desc;

MariaDB [mysql_demo1]> select * from students where gender='男' order by height desc; +----+-----------+------+--------+--------+--------+-----------+ | id | name | age | height | gender | cls_id | is_delete | +----+-----------+------+--------+--------+--------+-----------+ | 1 | 小明 | 18 | 180.00 || 1 | | | 7 | 張學(xué)友 | 36 | 180.00 || 1 | | | 4 | 周杰 | 38 | 175.00 || 1 | | | 8 | 周杰倫 | 25 | 166.00 || 1 | | | 10 | 王小明 | 57 | 162.00 || 2 | | | 2 | 小張 | 18 | 160.00 || 2 | | | 5 | 彭玉宴 | 56 | 150.00 || 2 | | | 6 | 劉德化 | 29 | 150.00 || 2 | | +----+-----------+------+--------+--------+--------+-----------+ 8 rows in set (0.00 sec)
查詢男性身高從高到底查詢 如果身高一樣則年齡從高到底來(lái)顯示 依次類推

select * from students where gender=‘男’ order by height desc,age desc;

MariaDB [mysql_demo1]> select * from students where gender='男' order by height desc,age desc; +----+-----------+------+--------+--------+--------+-----------+ | id | name | age | height | gender | cls_id | is_delete | +----+-----------+------+--------+--------+--------+-----------+ | 7 | 張學(xué)友 | 36 | 180.00 || 1 | | | 1 | 小明 | 18 | 180.00 || 1 | | | 4 | 周杰 | 38 | 175.00 || 1 | | | 8 | 周杰倫 | 25 | 166.00 || 1 | | | 10 | 王小明 | 57 | 162.00 || 2 | | | 2 | 小張 | 18 | 160.00 || 2 | | | 5 | 彭玉宴 | 56 | 150.00 || 2 | | | 6 | 劉德化 | 29 | 150.00 || 2 | | +----+-----------+------+--------+--------+--------+-----------+ 8 rows in set (0.01 sec)

總結(jié)

以上是生活随笔為你收集整理的学习mysql_day2的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。