Mysql数据库基本语法(二)

本文详细介绍了SQL的基础语法,包括字段的非空与空值设置、自动编号、主键约束、唯一约束、默认约束等概念及用法,并展示了如何进行数据的增删改查操作。

1.空值与非空值

NULL:字段值可以为空;

NOT NULL:字段值不可以为空。

例如:

CREATE TABLE tb2(
username VARCHAR(20) NOT NULL,
age TINYINT UNSIGNED NULL
);

2.AUTO_INCREMENT自动编号

必须与主键组合使用;默认情况下,起始值为1,每次的增量为1。

3.PRIMARY KEY主键约束

每张数据表只能存在一个主键;主键保证记录的唯一性;主键自动为NOT NULL。

例如:

CREATE TABLE tb3(
id SMALLINT UNSIGNED AUTO_INCRMENT PRIMARY KEY,
username VARCHAR(30) NOT NULL
);

4.UNIQUE KEY唯一约束

唯一约束可以保证记录的唯一性;唯一约束的字段可以为空值(NULL);每张数据表可以存在多个唯一约束。

5.DEFAUT默认约束

当插入记录时,如果没有明确为字段赋值,则自动赋予默认值。

6.UPDATE更新记录(表单更新)

UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET [column_name1={expr | DEFAULT}]
 [column_name2={expr | DEFAULT}]...[WHERE where_codition]]

省略掉WHERE条件将全部更新。

7.DELETE删除记录(表单删除)

DELETE FROM tbl_name [WHERE where_condition]

省略WHERE条件将整表删除。

8.查询表达式

每个表达式表示想要的一列,必须有至少一个。多个列之间以英文逗号分隔。星号(*)表示所有列。tbl_name *可以表示命名表的所有列。查询表达式可以使用[AS] alias_name为其赋予别名。别名可以用于GROUP BY,ORDRE BY或者HAVING子句。

例如:

SELECT id,username FROM users;

GROUP BY查询结果分组

[GROUP BY{column_name|postion}[ASC|DESC],...];

ASC表示升序(ascend),DESC表示降序(descend);

例如:

SELECT sex FROM users GROUP BY;

HAVING分组条件

[HAVING where_condition]

例如:

SELECT sex FROM users HAVING count(id)>=2;

OEDER BY对查询结果进行排序

[ORDER BY {cd_name|expr|postion} [ASC|DESC],...];
例如按照id降序排列
SELECT * FROM users ORDER BY id DESC;

LIMIT限制查询结果返回的数量(PHP中分页操作可以使用)

[LIMIT {[offset] row_count|row_count OFFSET offset}];
例如:
SELECT * FROM users LIMIT 2;

显示第0条,第1条记录;

SELECT * FROM users LIMIT 2,2;

显示第2条,第3条记录。

 INSERT插入记录

INSERT [INTO] tbl_name SET column_name={expr|DEFAULT},...;

说明:与第一种方式的区别在于,此方法可以使用子查询(SubQuery)

例如:

INSERT test(username) FROM users WHERE age>=30;

将数据表users中年龄大于等于30的username插入test的username中。

SELECT * FROM test\G;

将数据表以网格的形式显示出来。

SET NAMES gbk;

在客户端以gbk的格式显示出来。

8.子查询:子查询(subquery)是指出现在其他SQL语句内的SELECT子句。

例如:

SELECT * FROM t1 WHERE col1=(SELECT col2 FROM t2);

其中SELECT * FROM t1称为Outer Query/Outer statement,SELECT col2 FROM t2称为SubQuery。

子查询是嵌套在查询内部,且不许出现在圆括号内;

子查询可以包含多个关键字或条件。

如DISINCT,GROUP BY,ORDER BY,LIMIT,函数等。

子查询的外层查询可以是SELECT,INSERT,UPDATE,SET或DO。

















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值