(MySQL学习笔记)2020.12.13

#union :可以将查询结果集相加

#例:找出工作岗位是SALESMAN和MANAGER的员工
SELECT ename,job
FROM emp
WHERE job = 'SALESMAN' OR job = 'MANAGER';

SELECT ename,job
FROM emp
WHERE job IN ('SALESMAN','MANAGER');

SELECT ename,job FROM emp WHERE job = 'SALESMAN'
UNION
SELECT ename,job FROM emp WHERE job = 'MANAGER';

SELECT ROUND(-2.225234,2);
#limit 分页查询
#limit是mysql特有的,其他数据库中没有



#创建表

CREATE TABLE 表名(
	字段名 数据类型,
	字段名 数据类型,
	字段名 数据类型,
	……
	);
	
mysql中字段的数据类型
	INT 	整数型
	BIGINT	长整型
	FLOAT 	浮点型
	CHAR 	定长字符串
	VARCHAR 可变长字符串(StringBuffer/StringBuilder)
	DATA 	日期类型(Java中的java.sql.Data类型)
	BLOB 	二进制大对象(图片、视频等流媒体信息)
	clob	字符大对象(存储较大文本,比如4G的字符串)


#insert语句
INSERT INTO 表名(字段名,字段名,字段名……)
values(值,值,值……)


DROP TABLE IF EXISTS 表名;

#建表的时候使用default设置默认值
	DROP TABLE IF EXISTS t_s;
	CREATE TABLE t_s(
		NO BIGINT,
		NAME VARCHAR(9),
		sex CHAR(1) DEFAULT 1
		);
	


#表的复制
	CREATE TABLE emp1 SELECT * FROM emp;
	CREATE TABLE emp2 SELECT empno,ename FROM emp;

#将查询结果插入到一张表中
	INSERT INTO dept1 SELECT * FROM dept;

#修改数据update
	#语法格式
		UPDATE 表名 SET 字段名=值,字段名=值……where 条件;

#删除数据
	#语法格式
		DELETE FROM 表名 WHERE 条件;
	
#删除大表 ** 
	TRUNCATE TABLE emp;
	#表被截断,不能回滚,永久丢失
	
#SQL:select
#DML:insert delete update
#DDL:create drop alter



#增删改查:CRUD操作
#Create(增) Retrieve(检索) Update(修改) Delete(删除)




#约束Constraint
#在创建表的时候给表的字段添加相应的约束
/*常见的约束:	非空约束(not null)
		唯一约束(unique)
		主键约束(primary key)约束的字段不能重复不能为null
		外键约束(foreign key)
		检查约束(check)
		
*/
#约束:保证表中数据的合法性、完整性、有效性
#username(唯一性约束)
#password(非空约束)


	#unique
		#字段联合起来唯一:表级约束
		DROP TABLE IF EXISTS t_s;
		CREATE TABLE t_s(
			id INT,
			usercode VARCHAR(255),
			username VARCHAR(255)
			UNIQUE(usercode,username)
			);

	#not null只有列级约束,没有表级约束
	
	#primary key
	/*
		单一主键,复合主键
		自然主键,业务主键
		
		一张表只能有一个主键约束,可以多个字段联合起来添加一个主键
	
		mysql提供主键自增 auto_increment
	*/
	DROP TABLE IF EXISTS t_s;
		CREATE TABLE t_s(
			id INT PRIMARY KEY AUTO_INCREMENT,
			usercode VARCHAR(255),
			username VARCHAR(255)
			);
		
		
		
	#foreign key外键约束
		/*
			外键字段
			外键值
			
			
			
			#例:设计数据库表,用来维护学生和班级的信息
			
			
			顺序要求:
				删除数据的时候,先删除子表,再删除父表
				增加数据的时候,先添加父表,再添加子表
				创建表的时候,先创建父表,再创建子表
				删除表的时候,先删除子表,再删除父表
		
		
			
			外键值可以为null
			被引用的字段不一定为主键,但是要保证唯一,unique
		*/
		
		DROP TABLE IF EXISTS t_class;
		DROP TABLE IF EXISTS t_student;
		CREATE TABLE t_class( #父表
			con INT,
			cname VARCHAR(50),
			PRIMARY KEY(cno)
			);
		CREATE TABLE t_student (#子表
			sno INT PRIMARY KEY,
			sname VARCHAR(50),
			classno INT,
			FOREIGN KEY(classno) REFERENCES t.class(cno)
			);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值