设为首页 收藏本站
查看: 396|回复: 0

[经验分享] MySQL 基本语句

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-11-3 09:26:02 | 显示全部楼层 |阅读模式
MySQL 基本语句

一.数据定义语言(DDL)
二.数据操作语言(DML)
三.数据查询语言(DRL)
四.事务控制语言(TCL)


一.数据定义语言(DDL:Data Definition Language)
(修改表、库结构。 如create、drop、alter)


1.创建数据库(create database语句) create database 库名
2.删除数据库(drop database语句) drop database 库名
3.创建表(create table语句) create table 表名
4.删除表(drop table语句)  drop table 表名
5.修改表结构(alter table语句)

(1).修改表名
语法1. alter table 表名 rename 新表名
例:alter table student rename stu;
语法2. rename table 表名 to 新表名
例:rename table student to stu;

(2).添加列
alter table 表名 add 列名 类型;
例:alter TABLE student ADD sage int;

(3).删除列
alter table 表名 drop 列名
例:alter table student drop sname;

(4).修改列类型
语法1. alter table 表名 modify 列名 目标类型
例:alter table student modify sid varchar(10);
语法2. alter table 表名 change 列名 列名 目标类型
alter table student change address address char(50);

(5).同时修改列名和列类型
alter table 表名 change 列名 新列名 目标类型
alter table student change address add char(40);

注意:
1. 数据库不区分大小写
2. desc 表名 查看该表的结构
3. drop table语句会删除该表的所有记录及表结构


二.数据操作语言(DML:Data Manipulation Language)
(对数据进行操作。如insert、update、delete)

1.添加数据(insert into...语句)
语法1. insert into 表名(列名1, 列名2, 列名3...)values(列名1值,列名2值, 列名3值.)
例:insert into stu(sid,sname,sage)values(1,’张三’,22);
语法1. insert into 表名 values(列名1值,列名2值, 列名3值.)
例:insert into stu values(1,’李四’,22);
注意:
1. 语法1可以有选择的添加某些列的值,但语法2需添加所有列且按顺序添加值。
2. 添加当前时间可以用now()函数。

2.修改数据(update...set语句)
update 表名 set 列名1=修改的值,列名2=修改的值 where 列名='值';
例:update stu set sage=23,sname='李五' where sid=1;
注意:where表示条件,如果没有where的话将修改所有数据。

3.删除数据(delete from...语句)
(1). 删除所有记录 delete from 表名
(2). 删除id=1的的记录 delete from 表名 where id=1;


三.数据查询语言(DRL:Data Retrieval Language)
(查询 索引数据。select语句)

1.查询全部数据
Select * from 表名;
例:Select * from stu;

2.根据条件查询指定的数据
Select * from 表名 where 列名1=值 and 列名2=值....
例:Select * from stu where sid=9 and ssex='女';

3.查询数据,返回指定的列
Select 列名1,列名2 from stu;
例:Select sid,sname from stu;

4.给指定返回列取别名(小名)
语法1. Select 列名 别名,列名2 别名2... from 表名;
例:Select sid id,sname name from stu;
语法2. Select 列名 as 别名,列名2 as 别名2... from 表名;
例:Select sid as id,sname as name from stu;

5.在条件中使用比较运算符
SELECT * FROM 表名 where 字段 > < >= <= !=或<>
例:select * from stu where xsnianling !=18;

6.多条件的查询:
AND OR NOT
例:select * from stu where xsnianling <=21 and xsxingbie='女';
例:select * from stu where xsnianling <21 or xsxingbie='女';
例:select * from stu where xsnianling not in(18,21,25);

7.对空值的查询:is null  对应列是否null查询
例:select * from stu where xsxueli is not null;
例:select * from stu where xsxueli is null;

8.BETWEEN A AND B  在A和B之间,包含AB的值
例:select * from stu where xsnianling BETWEEN 18 and 21;

9.IN
例:select * from stu where xsnianling in(18,21,25);

10.模糊查询 LIKE
%:指代不明确值的位置或长度
_:指代明确值的位置或已知字符串长度
例:select * from stu where xsxingming like '_灵%'

11.查询中使用算术表达式:+ - * /
例:select xsxuehao+xsnianling from stu where xsxingming like '_灵%'

12.处理重复值:DISTINCT   排除重复展示,只展示一次
例:select DISTINCT xsxingbie from stu;

13.查询返回限定行数:LIMIT
Limit 10 取查询数据的前10位
Limit 10,10  从查询数据的第11位开始,向后取10位数据展示,不满足10位也不会报错

14.通过查询复制表
create table stu1  select * from stu;
--只复制结构
例:create table stu2  select * from stu where 1=2;
--复制旧表的数据到新表(假设两个表结构一样)
例:insert into stu2 select from stu;
--复制旧表的数据到新表(假设两个表结构不一样)
例:insert into stu2(字段1,字段2,…….) SELECT 字段1,字段2,…… FROM stu;

15.分组 group by
例:select ssex,COUNT(*) from stu GROUP BY ssex
注意:分组使用的时候group by字段一定要在select后面出现,如果使用了group by,select 后面就不要出现 *

16.排序 order by 字段名:字段名就是我们需要排序的字段
order by  xsnianling  升序  ASC 默认
order by  xsnianling desc  降序

17.多个排序条件,当第一个条件相同时,以第二个条件排序
例:select * from stu order by age desc,createDate desc;

18.虚拟表
在没有表被引用的情况下,允许您指定dual作为一个假的表名
例:select 1+1 from dual;


四.事务控制语言(TCL:Transaction Control Language)
(如commit、rollback语句)


事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。
在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或者整个程序

事务应该具有四个属性:
原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持续性(durability)

设置默认事务提交方式
set autocommit=false  设置事务提交方式为”手动提交“
set autocommit=true  设置事务提交方式为”自动提交“

事务就是对数据库的多步操作,要么一起成功,要么一起失败
commit --手动提交事务
rollback --回滚事务
savepoint point2 --保存还原点
rollback to point2 --回滚到point2还原点


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-294998-1-1.html 上篇帖子: CentOS7 使用yum安装mysql 下篇帖子: Mysql字符集乱码多种解决办法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表