創(chuàng)建數(shù)據(jù)庫:
create database 數(shù)據(jù)庫名字
create database user;
創(chuàng)建表:
create table 表名(id int(4)? age int(4) name char(20));
create table user(id int(4) age int(4) name char(20));
顯示所有的數(shù)據(jù)庫:
show databases;
查看數(shù)據(jù)庫中所有的表單柬讨;
show tables;
顯示創(chuàng)建表的詳細(xì)信息:
show create table 表名;
show create table name;
選擇數(shù)據(jù)庫:
use 數(shù)據(jù)庫名字;
use name;
刪除數(shù)據(jù)庫娩怎;
drop database 數(shù)據(jù)庫名字酌住;
drop database name;
刪除表吮旅;
drop table 表名碧囊;
drop table name;
查看表結(jié)構(gòu);
desc 表名;
desc name;
添加表一個字段;
alter table 表名 add 新字段名稱??? 字段屬性破讨;
alter table name add sex int(4);
刪除表的一個字段;
alter table 表名 drop 刪除字段名稱砂蔽;
alter table name drop id;
修改表名;
alter table 舊表名 rename 新表名 ;
alter table name rename user;
修改表一個字段流码;
alter table 表名 change 舊字段名稱? 新字段名稱? 字段屬性又官;
alter table name change id id int(4);
自增長屬性和主鍵的添加刪除:
一張表中只能有一個字段是自動增長的,并且被設(shè)定為自動增長的這個字段一定要設(shè)置為主鍵;
如果一個主鍵字段有自增長屬性旅掂,如果想要直接刪除主鍵赏胚,這是操作不了的;必須是先將自增長屬性去除商虐,然后才能刪除主鍵觉阅;
alter table name change id id int(4) auto_increment;? #添加自增長屬性;#必須先添加主鍵才能添加自增長屬性,不能直接添加
alter table name change id id int(4);#刪除自增長屬性;
alter table name change id id int(4) primary key;#添加主鍵
alter table name drop primary key;刪除主鍵 #添加了自增長屬性的秘车,必須先刪除自增長屬性才能刪除主鍵典勇,不能直接刪除
增加數(shù)據(jù):
insert into 表名(字段1,字段2,字段3......)? values(值1,值2叮趴,值3.....);
insert into name(id,age,sex)? values(1005,20,"男");
insert into name values(1005,20,"男");#必須是個表單結(jié)構(gòu)是對應(yīng)的割笙;
一次寫入多個數(shù)據(jù);
insert into 表名(字段1眯亦,字段2..) values(值1.1伤溉,值2.1...),(值1.2,值2.2,....);
insert? into? name(id,name,sex,age)values('1001','張三','男',20),('1002','李四','男',21);
#插入的是日期妻率,和字符串一樣乱顾,使用引號括起來。
更新表單數(shù)據(jù):如果where子句沒有指定宫静,則默認(rèn)將表中的數(shù)據(jù)全部更新
update 表名 set? 字段=值? where? 條件走净;update name set sex="男" where id=1001;? 修改id=1001的學(xué)生性別
update name set setmath=98,chinese=93 where? id=1002;修改id=1002的數(shù)學(xué)和語文成績
update name set chinese=chinese+5;給所有學(xué)生的語文成績+5;
update name set chinese=chinses+5 where id>1003;給id大于1003的學(xué)生語文成績加5孤里;
刪除表單數(shù)據(jù);如果where子句沒有指定伏伯,則默認(rèn)將表中的數(shù)據(jù)全部刪除
delete from 表名 where 條件;
delete from name where id=1003;? 刪除id=1003的學(xué)生信息
delete from name;? 刪除表中的全部數(shù)據(jù)
查詢數(shù)據(jù)捌袜;
select * from 表名; #查詢表中的所有數(shù)據(jù)
select * from name;
select * from 表名 where 條件;#查詢表中id =1004的數(shù)據(jù)
select * from nam where id=1004;
select id,sex from name;#查詢指定字段的數(shù)據(jù)
select sex as "性別" from name;#查詢指定sex字段的數(shù)據(jù)说搅,并且給添加“性別”別名;as (用于添加別名)琢蛤;
as不是給表里的字段取別名蜓堕,而是給查詢的結(jié)果字段取別名抛虏。其目的是讓查詢的結(jié)果展現(xiàn)更符合人們觀看習(xí)慣,在多張表查詢的時候可以直接的區(qū)別多張表的同名的字段套才。
條件查詢;
模糊查詢迂猴;
%: 表示任意個或多個字符,可匹配任意類型和長度的字符
? _: 匹配任意一個字符
?select * from name where name like "王%"; 查詢出學(xué)生姓王的學(xué)生信息背伴;like 后面跟查詢的信息
select * from name where name like "%王%";查詢出學(xué)生姓名中帶王的學(xué)生信息
select * from name where name like "%王";查詢出學(xué)生姓名中最后一個字是王的學(xué)生信息
and 并且查詢沸毁;
select * from nam where? sex="男" and name like "%王%";查詢學(xué)生為男性,并且姓名中帶有王字的學(xué)生的信息傻寂;
or 或者息尺,滿足任意一個條件即可;
select * from name where birth>1990 or sex="男";查詢出生日期大于1990疾掰,或者為男性的學(xué)生信息搂誉;
between x and y //在x與y之間的?
select * from name where birth between 1989 and 1992;查詢出生日期在1989到1992之間的學(xué)生信息;
select * from user where birth between 1989 and 1992 and name like "王%";查詢出生日期在1989到1992之間的學(xué)生信息并且姓名為王的學(xué)生信息:
select * from user where birth between 1989 and 1992 and id between 905 and 907;查詢出生日期在1989到1992之間的學(xué)生信息并且id 在905到907之間的學(xué)生信息静檬;
in在..里面炭懊,允許規(guī)定多個值:
select * from? name where? class="1704"or class="1703"; # 顯示1703和1704兩個班級學(xué)生信息;
select * from? name where? class?? in("1703","1704‘’);
limit 指定顯示多少行,limit后面2個數(shù)字拂檩,用逗號隔開侮腹,第一個表示數(shù)字后。第二數(shù)字表示顯示
select * from name limit 10;顯示前10行數(shù)據(jù)
select * from name limit 3,4;顯示第4行到底7行的數(shù)據(jù)稻励;
select * from name limit 3,2;顯示第4行到第5行的數(shù)據(jù)父阻,limlit使用的是chinese排序
select * from name where english between 70 and 90 limit 0,2;顯示english成績在70—90的開頭兩行數(shù)據(jù)
select department,sex,count(sex) from user group by department,sex;
select department,sex,count(sex) from user group by department,sex having sex="女";
7、邏輯運(yùn)算符?????????????????????????????????? 8望抽、算術(shù)運(yùn)算符
? > 大于????????????????????????????????????????????????????? ? + 加法
? < 小于???????????????????????????????????????????????????????? - 減法
? >= 大于等于????????????????????????????????????????????? * 乘法
? <= 小于等于????????????????????????????????????????????? / 除法
? =? 等于??????????????????????????????????????????????????????? % 取余
? != 不等于
其他(聚合函數(shù))
1加矛、count() 統(tǒng)計數(shù)量
select class ,count(class) from user ;#統(tǒng)計所有班級的數(shù)量
select class,count(class) from user group by class;#統(tǒng)計每個班級的數(shù)量? group by 分組
select department,sex,count(sex) from user group by department,sex having sex="女";#統(tǒng)計每個院系女生的數(shù)量
having 表示條件(類似where) 虛擬字段是不可以放在where后面的,例如where avg(math)其中math是實際字段煤篙,但avg(math)是求出來的平均分是虛擬字段荒椭; 需要進(jìn)行條件處理的虛擬字段,可以放在having后面舰蟆;
2、avg() 求平均分
select avg(math) from user;#統(tǒng)計全部班級的數(shù)學(xué)平均分
select class,avg(math) from user group by class;#統(tǒng)計每個班級的數(shù)學(xué)平均分
3狸棍、sum() 求和
select sum(math)? from user;#統(tǒng)計全部班級的數(shù)學(xué)總分
select class身害,sum(math) from user group by class;#統(tǒng)計每個班級的數(shù)學(xué)平均分:
4、max()最大值
select max(math)? from user;#統(tǒng)計全年級數(shù)學(xué)坐高分
select class,max(math) from user group by class;#統(tǒng)計每個班級的數(shù)學(xué)最高分
5草戈、min()最小值
select min(math)? from? user;#統(tǒng)計全年級的數(shù)學(xué)最少分
select class,min(math) from user group by class;#統(tǒng)計每個班級的數(shù)學(xué)最高分
6塌鸯、distinct() 去重復(fù)
select distinct(name) from? user ;#去除名字相同的學(xué)生
7、order by 排序
select * from? user order by id;// 默認(rèn)是升序
select name,sum(grade) from score group by name order by sum(grade) ;#統(tǒng)計每個學(xué)生的總分唐片,成績按照從低到高列出
select * from? user? order by id desc;// 降序
select name,sum(grade) from score group by name order by sum(grade) desc;#統(tǒng)計每個學(xué)生的總分丙猬,成績按照從高到底列出
8涨颜、group by 分組
select? class,count(class)? from? user group by class;
9、having 表示條件(類似where) 虛擬字段是不可以放在where后面的茧球,例如where avg(math)其中math是實際字段庭瑰,但avg(math)是求出來的平均分是虛擬字段; 需要進(jìn)行條件處理的虛擬字段抢埋,可以放在having后面弹灭;
select department,sex,count(sex) from user group by department,sex having sex="女";
show databases;#查看所有數(shù)據(jù)庫
show tables;#查看數(shù)據(jù)下的所有表單
use 數(shù)據(jù)庫名字;#選擇數(shù)據(jù)庫
creater databse 數(shù)據(jù)庫名稱;#查看數(shù)據(jù)庫
creater table 表名(字段,int());#創(chuàng)建表單
drop database 數(shù)據(jù)庫名字;#刪除數(shù)據(jù)庫
drop table 表名;刪除表單;
alter table 表名 drop 字段;#刪除表單的某個字段
alter table name drop primary key;#刪除主鍵
alter table 舊表名 rename 新表名;修改表名
alter table 表名 add? 字段 字段屬性;#表單中添加字段
alter table 表名 change 舊字段 新字段 新字段屬性;#修改某個字段
alter table 表名 change 舊字段 新字段 新字段屬性
alter table 表名 change 添加主鍵的字段 字段 字段屬性 primary key;#添加主鍵
alter table 表名 change 添加自增長字段 字段 字段屬性 auto_auto_increment;#添加自增長屬性
alter table 表名 change 刪除自增長字段 字段 字段屬性;#刪除自增長屬性
desc 表名;#查看表單結(jié)構(gòu)
insert into? 表名(字段1,字段2,.......) values(值1,值2,.......);#表中添加數(shù)據(jù)
insert into? 表名(字段1,字段2,.......) values(值1,值2,.......),(值1,值2,.......);#一次性添加多個數(shù)據(jù)
insert into 表名 values(值1,值2,..........);#添加的數(shù)據(jù)必須與表單結(jié)構(gòu)對應(yīng)
update 表名 set 字段=值;#更改這個字段的所有值
update 表名 set 字段=值 where 條件;#x更改某個字段的值揪垄,條件為更改所在字段的某個字段值,如:(id=1001)或者(name="張三")等值都可以穷吮。
select * from 表名;查看表數(shù)據(jù)
avg():平均
select avg(math) from user;#統(tǒng)計全部班級的數(shù)學(xué)平均分
sum():求和
select sum(math)? from user;#統(tǒng)計全部班級的數(shù)學(xué)總分
max():求最大值
select max(math)? from user;#統(tǒng)計全年級數(shù)學(xué)坐高分
min():最小
select min(math)? from? user;#統(tǒng)計全年級的數(shù)學(xué)最少分
distinct():去重
select distinct(name) from? user ;#去除名字相同的學(xué)生
order by:排序
select * from? user order by id;// 默認(rèn)是升序
select * from? user? order by id desc;// 降序
group by:分組
select? class,count(class)? from? user group by class;#group by 給班級分組
having同where
select department,sex,count(sex) from user group by department,sex having sex="女";#having和where類似一樣,區(qū)別是having后面跟虛擬字段