mysql基本语法
来源:互联网 发布:淘宝儿童玩具警车视频 编辑:程序博客网 时间:2024/06/08 00:17
增删改查
distinct查询结果中消除重复行
select distinct(属性列) from 表名;select distinct 属性列 from 表名;
order by,默认升排asc,降排desc
——先公司名排序,再按序号排SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber
update 表名 set 属性=新值;
——若更新多列,“,”隔开UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing' WHERE LastName = 'Wilson';
在不删除表的情况下删除所有的行
delete from 表名;delete * from 表名;
//删掉工资为空的行
delete from 表名 where gongzi is null;
插入语句
insert into 表名 values();insert into 表名(指定要插入的列) values();
【重点】
一、多表连接
inner join
outer join(left/right outer join,full outer join,全连接MySQL不支持)
自然连接
自连接
– inner join
select * from buyer t1 inner join buyerorder t2 on t1.id=t2.id;
– 三表inner join
select * from buyer t1 inner join buyerorder t2 on t1.id=t2.id inner join score t3 on t2.id=t3.id;
二、约束(可以给其专门取个名字)
unique
null
primary key
foreign key,外键
defalut
not null
comment这种注释可以看见
作用:可以检验主键外键表键值是否一致
(当在有外键的表中加入数据,若外键部分的值,主键里没有,则不会通过)
表内
(1)check/unique/primary key(属性名)(2)constraint 约束名 check/unique/primary key (属性名)/(条件)(3)foreign key foreign key 外键名 references 主键表(主键名)constraint 约束名 foreign key (外键名) references 主键表(主键名)
表外添加
(1)uniquealter table 表名 add unique(属性名,)alter table 表名 add constraint 约束名 unique(属性名,)alter table 表名 drop index 约束名/默认约束名
【注意】:unique本身包含,not null 约束
(2)primary keyalter table 表名 add primary key(属性名,)alter table 表名 add constraint 约束名 primary key(属性名,)//不管取名与否,都直接删alter table 表名 drop primary key(属性名)
【注意】:主键本身就包含了,not null和unique
【注意】:主键可以是几个属性的组合
(3)foreign keyalter table 表名 add foreign key 【外键表名】(属性名)references 主键表名(主键名)alter table 表名 add constraint 约束名 foreign key 【外键表名】(属性名)references 主键表名(主键名)alter table 表名 drop foreign key 约束名/默认约束名
【注意】:外键表名可以不要
【注意】:外键添加的值必须是主键里有的
**【注意】:**foreign key 可以检验主键表,外键表键值是否一致
(当在有外键的表中加入数据,若外键部分的值,主键里没有,则不会通过)
(4)defaultalter table buyer alter buyerName set default '哈哈';//删除默认值的3种方法alter table buyer 【alter】 buyerName 【drop】 default;//可以把默认的default null也删掉alter table buyer 【modify】 buyerName varchar(20);//default 默认值 nullalter table buyer 【change】 buyerName buyerName varchar(20);//default 默认值 null
【注意】:alter…drop可以把默认的default null也删掉,modify和change删除之后default 默认为 null
(5)check
check(条件)
【注意】:满足check条件的可以通过编译(例:insert)alter table 表名 add check(条件)alter table 表名 add constraint 约束名 check(条件)alter table 表名 drop check 约束名/默认约束名
(6)auto_increment
alter table 表名 auto_increment=具体数值
【注意】:mysql默认自增是从1开始,并以1为增量自增
三、alter,index,truncate
- alter
删除primary/foreign key
删除unique
去掉default 值(alter,modify,change)
去掉not null(modify) - index索引(提高效率)
ex1.create INDEX index_student_stuName on student(stuName); - delete 和 truncate 的区别
(1)delete 是dml ,truncate 是ddl
(2)delete 如果没有提交事务的话是可以回滚的,truncate不能回滚
(3)delete 如果有自增列,再添加数据的时候,会从之前的数据往上加, truncate 会从头开始计算
(4)delete 删除数据慢,truncate 快
(5)delete 可以指定删除的条件语句(where), truncate 是不能指定
不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以清空mysql表中所有内容
效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据(涉及到提交回滚)。
(1)truncate语法 TRUNCATE [TABLE] tbl_name
四、日期函数
- DATE(date) 函数返回日期或日期/时间表达式的【日期部分】
DATE_ADD() 函数向日期添加指定的时间间隔。
语法:DATE_ADD(date,INTERVAL expr type)
eg.select now(), CURDATE(), CURTIME(), date(now()) ,time(now()) , date_add(now(), INTERVAL -2 hour),DATE_SUB(now(), INTERVAL 2 hour),datediff('2016-5-10', '2016-6-11'),DATE_FORMAT(now(), '%Y/%c/%d');
eg、查询生日是从2000年到2010年的记录
(1)year(date)(2)substr(date,1,4)(3)date between 2000-1-1 00:00:00 and 2010-12-31 23:59:59
五、子查询(效率)
select * from ( select * from 表1 b1 left (outer) join 表2b2 on b1.id=b2.id union select * from 表1 b1 right (outer) join 表2b2 on b1.id=b2.id) 表3 order by 属性
【MySQL默认自动提交】
SET AUTOCOMMIT=0;将其设为手动提交
【mysql提交原理】
例:insert 插入数据,
先将数据保存到运行内存,commit提交到物理内存,rollback回滚,撤销到
insert into。。。
commit
//进入物理内存
delete from 表名
//数据没有,表结构还在
rollback
//原先操作撤销
- MySql基本语法参考
- Mysql基本语法
- mysql 基本语法介绍
- Mysql基本语法
- mysql基本语法
- mysql 基本语法
- Mysql基本语法
- MySql基本语法
- mysql基本操作语法
- 讲述MySQL基本语法
- mysql基本语法
- 基本MySQl语法
- mysql基本语法
- mysql基本语法总结
- mySQL基本语法
- MySQL基本语法命令
- mysql基本语法
- mysql基本操作语法
- hibernate配置属性---自动建表 hibernate.hbm2ddl.auto
- Editplus 替换 jd-gui 反编后JAVA代码中的注解
- Hibernate缓存:一级缓存和二级缓存
- 辗转相除法
- LeetCode ---- Fizz Buzz (Java/Lua 实现)
- mysql基本语法
- Docker之镜像使用
- protobuf反射详解
- UITextfield监听删除事件
- 第五章
- javascript严格模式
- Linux管理用户与用户组----passwd
- NanoHTTPD----SimpleWebServer处理请求过程
- <Android>本地数据库之--Xutils的使用