mysql第三章试题_MySQL_第三章

第三章:高级查询(-)

3.1:修改表

3.1.1:修改表

语法:

Alter table rename [ TO] ;

例子:Alter table `demo01` rename `demo02`;

3.1.2:添加字段

语法:

Alter Table 表名ADD字段名  数据类型[属性];

例子:Alter Table `Demo02` ADD `passWord`  varchar(50) not null;

3.1.3:修改字段

语法:

Alter table 表名change原字段名  新字段名  数据类型[属性];

%修改字段名%

Alter Table  `Demo02`  change  `name`  `username`  char(10)  NOT  NULL;

3.1.4 删除字段

删除字段是将数据表中的某个字段从表中移除:

语法:  ALTER TABLE  表名DROP字段名;

3.1.5 添加主外键

添加主键约束

语法:  ALTER TABLE 表名ADD CONSTRAINT主键名PRIMARY KEY表名(主键字段);

添加外键约束

语法: ALTER TABLE 表名ADD CONSTRAINT外键名FOREIGN KEY (外键字段) REFERENCES关 联表名(关联字段);

3.2 DML语句回顾

3.2.1 插入数据记录

插入单行数据

语法: INSERT INTO 表名[(字段名列表)]  VALUES (值列表);

插入多行数据

语法:INSERT INTO 新表(字段名列表) VALUES (值列表1), (值列表2), ......, (值列表n);

注意:在是INSERT语句插入记录时,如果不包含字段名称,VALUES后值列表中各字段的顺序必须和表定义中各字段的顺序相同,如果表结构变了(如执行了添加数据操作)则值列表也要变化,否则会出现错误.如果指定了插入的字段名,就会避免这个问题,因此,建议在插入数据时指定具体字段名.

将查询结构插入到新表

语法1:

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

SELECT 字段1,字段2,......

FROM 原表;

语法2:

CREATE TABLE 新表(SELECT字段1,字段2, ........FROM原表);

3.2.2 更新数据记录

语法:  UPDATE 表名SET字段1=值1,字段2=值2,........字段n=值n [WHERE条件];

3.2.3 删除数据记录

语法: DELETE  FROM 表名[WHERE条件];

语法: TRUNCATE TABLE 表名;

3.3 数据查询

3.3.1 DQL语句回顾

SQL Server中数据查询语句:

语法: SELECT

FROM

[WHERE ]

[GROUP  BY  ]

[HAVING ]

[ORDER BY   [ASC或DESC]];

3.3.2 LIMIT子句

语法: SELECT

FROM

[WHERE ]

[GROUP  BY  ]

[ORDER BY   [ASC或DESC]]

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

其中:1.位置偏移量指从结果集中第几条数据开始显示(第一条记录的位置偏移量是0,第2条 是1,....),当省略时从第一条记录开始显示.

行数值显示记录的条数

3.3.3 常用函数

常用聚合函数:

AVG()

返回某字段的平均值

COUNT()

返回某字段的行数

MAX()

返回某字段的最大值

MIN( )

返回某字段的最小值

SUM( )

返回某字段的和

函数名

作用

常用的字符串函数

函数名

作用

举例

CONCAT(str1,str2,...,strn)

连接字符串str1,str2,...,strn为一个完整字符串

SELECT CONCAT(‘My’,’S’,’QL’);

返回:MySQL

INSERT(str,pos,len,newstr)

将字符串str从pos位置开始,len个字符长的子串替换为字符串newstr

SELECT INSERT(‘这是SQL SERVER数据库’,3,10,’MySQL’);

返回:这是MySQL数据库

LOWER(str)

将字符串str中所有字符变为小写

UPPER(str)

将字符串str中所有字符串变为大写

SELECT UPPER(‘MySQL’);

返回: MYSQL

SUBSTRING(str,num,len)

返回字符串str的第num个位置开始长度为len的子字符串

3.时间日期函数

函数名

作用

举例

CURDATE()

获取当前日期

SELECT CURDATE();

CURTIME()

获取当前时间

NOW()

获取当前日期和时间

WEEK(date)

返回日期date为一年的第几周

YEAR(date)

返回日期date的年份

HOUR(time)

返回时间Time的小时值

MINUTE(time)

返回时间Time的分钟值

DATEDIFF(date1,date2)

返回日期参数date1和date2之间相隔的天数

ADDDATE(date,n)

计算日期参数date加上n天后的日期

数字函数

函数名

作用

举例

CEIL(x)

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

SELECT CEIL(2.3)

返回:3

FLOOR(x)

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

RAND()

返回0~1间的随机数

3.4 子查询

3.4.1 简单子查询

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

使用AS关键字,符合ANSI标准

SELECT 字段列表FROM表名AS表的别名;

使用空格,简便的方法

SELECT 字段列表FROM表名 表的别名;

3.5 IN和NOT IN子查询

3.5.1 IN子查询

使用子查询 当返回结果有多条记录时,则把条件的=改为in

IN子查询后面可跟随返回多条记录的子查询,用于检测某字段的值是否存在于某个范围中.

3.5.2  NOT IN子查询

不在IN子查询范围内的其他数据.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值