DML和DQL语句

DML操作:

a.插入单行数据:     

INSERT INTO 表名(列名,列名,...) VALUE(列值,列值,...);

表的字段名是可选的,如果省略,则一次插入所有字段

多个列表和多个值之间使用逗号分隔.

值列表必须和字段名列表数量相同,且数据类型相符,

如果插入的是表中的部分数据,字段名列表必须填写.

 

注:插入数据时必须满足数据完整性约束.任何数据都可以使用单引号括起来,系统会自动解析.

 

b.插入多行数据

向原表插入多行数据

INSERT INTO 表名(列名,列名,...)

VALUES(列值,列值,...),(列值,列值,...),(列值,列值,...)...;

 

向新表中插入多行数据

INSERT INTO 新表(select字段1,字段2...FROM原表)

 

注:向子表插入数据时,外键值必须在主表中存在

 

C.更新数据

UPDATE 表名 SET列名 = 更新值 [WHERE 更新条件];   

注:在更新数据的时候,一般都有条件限制,别忘了书写WHERE条件语句,否则将更新表中所有行的数据,这样就可能导致有效数据的丢失.

 

D.删除数据

Delete [FROM] 表名 [where 删除条件];可恢复(记录日志)

删除所有:    delete [FROM] 表名

 

注:更新数据或删除数据时,操作主表时,不能让子表中的数据孤立.

删除主表时,必须先删除子表数据,在删除主表数据,否则报错.

Delete语句删除的是整条记录,不会只删单个列,所以在delete后不能出现列名,否则报错.

 

TRUNCATE    TABLE 删除数据

实际工作中,不建议使用TRUNCATE TABLE语句,因为使用它删除的数据不能回复还原.

 

DQL语句的操作:

使用select语句进行查询

 

语法:SELECT <列名|表达式|函数|常量>

FROM <表名>

 [WHERE <查询条件表达式>]

 [ORDER BY <排序的列名> [ASC或DESC]];

查询所有的数据行列:

SELECT * FROM <表名>;

SELECT 字段名1,字段名2,... FROM 表名

查询部分则在select语句后面加上条件即可,WHERE语句为可选语句,根据指定条件查询.

 

在查询中显示列的别名:

AS语句(也可省略不写)

如查询某员工信息表:

SELECT name AS 员工姓名,phone AS手机号码 FROM <员工信息表表名>

 

显示两列合并一列显示:

如:将员工姓名和电话合并显示为员工信息表

SELECT name + ’ . ’ + phone AS 员工信息表 FROM <员工信息表表名>

 

查询空值

在SQL语句中,采用 IS NULL 或者 IS NOT NULL 来判断是否为空.

例如 查询员工信息表手机号码为空的员工:

SELECT name FROM <员工信息表表名> WHERE phone IS NULL;

 

 

常用函数:

聚合函数

AVG ()                                        返回某字段的平均值

COUNT()                                   返回某字段的行数

MAX()                                       返回某字段的最大值

MIN()                                        返回某字段的最小值

SUM()                                       返回某字段的和

字符串函数

CONCAT (str1,str2,...strn)         连接括号内的字符串为一个完整字符串

INSERT(str,pos,len,newstr)       将字符串str 从pos位置开始,len个字符长度的字符串    替换为字符串newstr.

LOWER(str)                              将字符串str中的所有字符变为小写

UPPER(str)                                将字符串str中的所有字符变为大写

SUBSTRING(str,num,len)          返回字符串str的第num个位置开始长度为len的子字符串.

时间日期函数

CURDATE()                               获取当前日期

CURTIME()                               获取当前时间

NOW()                                      获取当前日期时间

WEEK(date)                              返回日期date为一年中的第几周

YEAR(date)                               返回日期data的年份

HOUR(time)                             返回时间time的小时值

MINUTE(time)                          返回时间time的分钟值

DATEDIFF(date1,date2)            返回日期参数date1和date2之间相隔的天数

ADDDATE(date,n)                     计算日期参数date加上n天后的日期

 

数字函数

CEIL       (x)                                      返回大于或等于数值x的最小整数

FLOOR(x)                                  返回大于或等于数值x的最大整数

RAND()                                     返回0-1之间的随机数.

 

ORDER BY(排序) 字句

如果需要按照一定顺序排列查询语句中的行,则需要使用ORDER BY字句.

排序的值分两种 ASC(升序) / DESC(降序), 不写默认为ASC升序.

 

LIMIT字句

语法:

SELECT <字段名列表>

FROM<表名或视图>

[WHERE <查询条件>]

[GROUP BY <分组的字段名>]

[ORDER BY <排序的列名>]

[LIMIT [位置偏移量]行数 ]

位置偏移量是指从结果集中第几条数据开始显示(第一条记录的位置偏移量是0, 第二条记录的位置偏移量是1,....以此类推),此参数可选,省略时从第一条记录开始显示.

行数指显示记录的条数.

 

子查询

语法: SELECT .....FROM 表名 WHERE 字段 比较运算符 (子查询);

注:将子查询和比较运算符联合使用,必须保证子查询返回的值不能多于一个.

 

IN NOT IN子查询

当返回结果为多个的时候,把比较运算符更换为IN(等同于等于)或 NOT IN(等用于不等于)即可.

转载于:https://www.cnblogs.com/it-xiaoBai/p/10813659.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值