第二阶段 mysql------------- DDL及DML增删改查

第二阶段:
	mysql数据库
	radis--缓存
	py连接数据库--底层
      前端:	
	html
	css
	javascript--脚本
	jqury---函数
	ajax
DBMS:
	Oracle----甲骨文
	MySQL----分布式集群
	SQL Server--微软
	DB2跨平台---银行
SQL-------Structured Query Language(结构化查询语言)--数据库端
	DML----表中数据-----( Data Manipulation Language   数据操作语言)
                     	——查询、插入、删除和修改数据库中的数据;
	DCL---权限---( Data Control Language数据控制语言)
	    	——用来控制存取许可、存取权限等;
	DDL---表---( Data Definition Language数据定义语言)
		——用来建立数据库、数据库对象和定义其列
DDL=====================
1)创建表:
	create table 表名(
	列名1  列类型  [<列的完整性约束>],
	列名2  列类型  [<列的完整性约束>], 
	... ...);
   Navicat:--utf-8
	CREATE TABLE stu(
		sno INT(4),
		sname VARCHAR(20),
		ssex VARCHAR(4),
		sbirthday DATETIME,
		stel VARCHAR(255)
	)
	
常见完整性约束:
	PRIMARY  KEY 	   主码约束(主键)
	UNIQUE		    唯一性约束
	NOT  NULL	    非空值约束			
	AUTO_INCREMENT	用于/整数列/默认自增1
	UNSIGNED    无符号整数
	DEFAULT default_value	默认值约束
	//DEFAULT cur_timestamp 创建新记录时默认保存当前时间(仅适用timestamp数据列)
	//ON UPDATE cur_timestamp 修改记录时默认保存当前时间(仅适用timestamp数据列)
	CHARACTER SET name 指定字符集(仅适用字符串)
example:
	CREATE TABLE stu(
		sno INT(4) primary key AUTO_INCREMENT,
		sname VARCHAR(20) UNIQUE,
		ssex VARCHAR(4),
		sbirthday DATETIME,
		stel VARCHAR(255)
	)
2)查看表结构
	describe 表名
	describe stu	
3)删除表
	drop  table  [if exists]  tab_name [,tab_name]		
	drop table stu
	drop table if exists stu,stt
4)修改表
	alter table 表名 action; 
	  action 可以是如下语句:
	    add 列名 列类型 [first | after 列名]
		可以为表添加一列,如果没指定first或者after,则在列尾添加一列,否则在指定列添加新列
	    add primary key (列名)
		为表添加一个主键,如果主键已经存在,则出现错误
	    alter 列名 set default 默认值
		可以更改指定列默认值
	alter table stu add sweight DOUBLE [after sname]
	ALTER table stu add primary key(sno)
 
 change 旧列名 新列名  [first | after 列名]
  modify 列名  [first | after 列名]
	和change的作用相同
   drop 列名     //可以删除一列
   drop primary key      //可以删除主键
   rename as 新表名     //可以将表名更改
============================
DML:
        1)插入---新增数据
	INSERT  INTO <表名> ([列名1],[列名2]) VALUES <值列表>
	INSERT INTO stu(
		sno,sname,ssex
	)values(
		10,'zs','男'
	),
	(
		20,'zs','男'
	)
	
          2)修改
	UPDATE <表名> SET <列名 = 更新值> 
		[WHERE <更新条件>]
	update stu set ssex = '女'
		where sno = 10
          3)删除
	DELETE FROM <表名> [WHERE <删除条件>]	
	delete from stu where sno = 10
           //4)查询
	SELECT [DISTINCT | DISTINCTROW | ALL] 
	select_expression,...
 	[FROM table_references 	
		[WHERE where_definition] 	
		[GROUP BY col_name,...] 
		[HAVING where_definition] 
		[ORDER BY {unsigned_integer | col_name | 			
			formula} [ASC | DESC] ,...] 
		[LIMIT [offset,] rows] 
		[PROCEDURE procedure_name]
	] 
example:
	select sno,sname from stu1
	
	select deptno,dname,loc from dept where deptno = 2
	select count(dname) from dept
记数函数: count(列名) 计算元素的个数
求和函数: sum(列名)	对某一列的值求和,但属性必须是整型
计算平均值:avg(列名)对某一列的值计算平均值
求最大值: max(列名) 找出某一列的最大值
求最小值: min(列名) 找出某一列的最小值
	select count(s.dname) FROM (select DISTINCT dname from dept) s
	SELECT max(deptno) from dept
	SELECT min(deptno) from dept
	SELECT avg(deptno) from dept
	SELECT sum(deptno) from dept
1,不能用*
2,where 条件
3,count sum avg max min
4,group by          having    order by(asc\desc)     limit
5,as    别名
	select size,count(size) from bbs_sku GROUP BY size	
	select size,count(size) from bbs_sku where size = 'XXL' GROUP BY size
	select size,count(size) from bbs_sku GROUP BY size having size = 'XXL'
	select size,color,count(size) from bbs_sku GROUP BY size,color having size = 'XXL'
	select size,color,count(size) from bbs_sku GROUP BY size,color having size = 'XXL' order by color_id asc(默认) / desc
	select size,color,count(size) from bbs_sku GROUP BY size,color having size in ('S','M','L') order by color_id asc LIMIT 0,5      (5,5)
	
   select name as '姓名' from bbs_product	
   
6, 在WHERE子句中使用谓词 :
 	BETWEEN    AND    :在两数之间
	NOT   BETWEEN    AND :不在两数之间
	IN <值表>		:是否在特定的集合里(枚举)
	NOT IN <值表> :与上面相反
	LIKE		:是否匹配于一个模式
	IS NULL(为空的)或 IS NOT NULL(不为空的)	
  example:
	select * from bbs_color where id between 10 and 20
	select * from bbs_color where id in (10,20,30,40)
	select * from bbs_color where id = 1 or id = 2
	select * from bbs_color where id = 1 and name = '红色系'
	select * from bbs_product where name like '%2016%'
	select * from bbs_product where name like '%_毛衣%'
	select * from dept where loc is [not] null
7,两表联查
	===select *from dept,emp----笛卡尔积
	===select *from dept d,emp e where e.deptno = d.deptno
	==select * from dept d left join emp e on d.deptno = e.deptno --左外连接
	==select * from dept d right join emp e on d.deptno = e.deptno--右外连接	
	=select * from dept d INNER join emp e on d.deptno = e.deptno--内连接(仅打印匹配成功)
	select * from emp where deptno = (select deptno from dept d where d.dname = '财务部')
	
example: 	
create table dept(
	deptno int(4) primary key,
	dname varchar(10),
	loc varchar(10)
)

create table salgrade(
	grade int(3),
	losal int(8),
	hisal int(8),
)


alter table dept modify dname varchar(10) not null


create table emp(
	empno int(4) primary key not null,
	ename varchar(16),
	job varchar(10),
	MGR int(4),
	hiredate date,
	sal int(8),
	comm int(8),
	deptno int(4)
);
alter table emp modify ename varchar(32) not null
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值