DML语句、DQL语句、完整性以及约束

文章目录

一、DML语句

1.插入数据

	insert into tablename (列名,列名,列名....) values(值,值,值....);
  • 例句
insert into t (id,name,address,birth,sex) values (1,'郭靖','桃花岛','1980-1-1','男');
  • 省略字段名,意味着给所有的字段定值,可以同时添加多条数据,中间用逗号隔开。
insert into t values (1,'郭靖','桃花岛','1980-1-1','男'),(2,'黄蓉','桃花岛','1988-2-9','女');
	** 注意 **   如果id是自动增长的,那么不能省略字段

2.修改数据

	update 表名 set 字段名=值,字段名=值, ...  where 条件;
  • 修改杨过的id为5
	 update t set id=5 where name = '杨过';
  • 修改黄蓉的id为6,年龄为20
     update t set id=6,age = 20 where name = '黄蓉';

3.删除数据

	delete from 表名 where 条件;
  • 删除名字是黄蓉的人
			delete from t where name = 黄蓉;

二、DQL语句

1.普通查询某列的值

	select 字段名,字段名..... from 表名 
  • 显示姓名和年龄两列的值
     SELECT age, name FROM t1;

2.带条件查询

	select 字段名,字段名..... from 表名 where 字段名 = 值
  • 例子
			SELECT * FROM t1 WHERE name = '小龙女';
			SELECT * FROM t1 WHERE age >= 25 AND age <=30;
			SELECT * FROM t1 WHERE age <= 20 OR age >=30;
			SELECT * FROM t1 WHERE name <> '杨过';

3.模糊查询

	% 代表任意个字符,	_ 代表任意的一个字符
	采用LIKE关键字来写模糊表达式
  • 例子

查询所有姓杨的人

		SELECT * FROM t1 WHERE name LIKE '杨%';

查询name含有王的人

		SELECT * FROM t1 WHERE name LIKE '%王%';

查询名字中含有王,且长度为2个字

		SELECT * FROM t1 WHERE NAME LIKE '王_' OR '_王';

4.NULL的查询

	SELECT * FROM 表名 WHERE 字段名 IS NULL;
  • 例子
  			SELECT * FROM t1 WHERE age IS NULL;
			SELECT * FROM t1 WHERE age IS NOT NULL;
			SELECT * FROM t1 WHERE age IS NOT NULL AND age = '';

5.查询关键字

  • distinct : 去除重复的数据,必须放在所有字段前面

     	SELECT DISTINCT 字段名 FROM 表名
    
  • in关键字 :表示在。。。。里面

     	SELECT * FROM 表名 WHERE 字段名 IN (value1,value2,...);
    
  • 关键字 ORDER BY 当字段值一样时,默认按照ID升序排序

     	默认是升序(asc),(desc)降序
    
  • 关键字group by 分组查询

     	SELECT * FROM 表名 GROUP BY 字段名;
    
  • 例子

        SELECT DISTINCT age FROM t1    (去除age列重复值)
		SELECT * FROM t WHERE age IN (50,20,23);    (查询age = 20,age = 50,age = 23)
		SELECT * FROM t ORDER BY age DESC;     (age降序排列)
		SELECT * FROM t ORDER BY age ,id DESC;   先按照age的升序排序,值一样的按照降序排列
		SELECT * FROM t GROUP BY sex;    (按性别分组)

6.限制查询

  • LIMIT m, n : m是开始的索引,n是截取的长度

      	SELECT * FROM 表名 ORDER BY 字段名 DESC LIMIT m,n;
    
  • 例子

      查询年龄最大的三个人
    
		SELECT * FROM t ORDER BY age DESC LIMIT 0,5;
		SELECT * FROM t ORDER BY age DESC LIMIT 2,5;

7.聚合查询

	在MySQL中定义了5个聚合函数  分别是max()  min()  avg()  sum()  count()
  • 例子
		SELECT id ,NAME,MAX(age) FROM t;    (查询年龄最大的人 )
		SELECT id ,NAME ,MIN(age) FROM t;    (查询年龄最小的人 )
		SELECT AVG(age),SUM(age)/COUNT(id) , COUNT(*)  FROM t ;  (平均值)
		SELECT COUNT(IFNULL (age,0)) FROM t;   (年龄不为空的总数量)
		SELECT COUNT(*) FROM t;      (总数量)
		SELECT SUM(age) FROM t;      (年龄的总和)

三、完整性

    完整性:用来保护非法的数据不允许进入到数据库

完整性分类

1.域完整性:用来限定字段的取值范围

	* 手段:数据类型

2.实体完整性:对关系中的记录唯一性,也就是主键的约束

	* 主键:用来唯一的区分每条记录的一列或者多列的值。
	* 主键特点:非空,唯一。
	* 每一张表只能有一个主键
	* 多列充当主键就成为联合主键或者复合主键
	* 手段:自增,主键

3.引用完整性:就是对外键的约束

	* 需要在子表中创建外键来引用主表的主键(外键只能引用主键)
	* 外键所在的表称为子表或从表,主键所在的表称为主表
	* 在添加记录时,必须先添加主表的记录,然后再添加子表的记录
	* 修改主表的记录时,不允许修改有外键引用约束的主键
	* 删除数据的时候,必须先删除子表的数据,然后删除主表中的数据。
	* 手段:外键约束·

四、约束

	约束:用来限定字段的取值,对表中数据进行限定,保证数据的完整性,有效性,正确性

1.约束的分类:

		1.主键约束:
		2.唯一约束:unique
		3.非空约束:not null 
		4.默认约束:default
		5.外键约束:foreign key	
  • 演示自增以及约束

    自增id

        	关键字:PRIMARY KEY(主键),AUTO_INCREMENT(自增)
    
		-- 创建表
		CREATE TABLE  t3
		(
			id INT PRIMARY KEY  AUTO_INCREMENT,
			NAME VARCHAR(20),
			age INT
		)
		-- 插入数据(未插入id,因为id自增从1开始)
		INSERT INTO t3 (NAME,age) VALUES ('张无忌','20');
		INSERT INTO t3 (NAME,age) VALUES ('郭靖','21');
		INSERT INTO t3 (NAME,age) VALUES ('黄蓉','30');
		INSERT INTO t3 (NAME,age) VALUES ('杨过','25');

结果展示
DML语句、DQL语句、完整性以及约束

2.五个约束

		-- 创建表
		CREATE TABLE  stu
		(
			id INT PRIMARY KEY ,
			NAME VARCHAR(20)  UNIQUE,
			age INT  NOT NULL,
			sex VARCHAR(2) NOT NULL,
			address VARCHAR(20) DEFAULT '北京'
		);
		-- 插入数据
		INSERT INTO stu  VALUES ('1','张无忌','20','男','明教');
		INSERT INTO stu (id ,NAME ,age, sex ,address)  VALUES ('2','郭靖','30','男','明教');
		-- 未设置address,默认北京
		INSERT INTO stu (id ,NAME ,age, sex )  VALUES ('3','黄蓉','31','男');
		INSERT INTO stu (id ,NAME ,age, sex )  VALUES ('4','小龙女','31','男');
		INSERT INTO stu (id ,NAME ,age, sex )  VALUES ('5','杨过','31','男');

结果展示
DML语句、DQL语句、完整性以及约束

上一篇:数据操作语言(DML)一:插入数据insert、修改数据update、删除delete


下一篇:数据库语句DDL、DML、DQL、DCL的总结