版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1.create database 创建数据库create database 数据库名称;2.use 指定操作位置use 数据库名称;3.创建表文件create table 表名称(字段名称 数据类型(大小),字段名称 数据类型(大小),字段名称 数据类型(大小)*使用小括号将字体包围*先声明字段名称,再声明数据类型*字段与字段之间用逗号隔开*最后一个字段不需要添加任何符号4.数据类型intint(3)<=999doubledouble(5,2)<=999.99char固定长度不可变varchar固定长度可变booleanDate日期类型可以用字符串代替 birth datebir
2、th='1990-07-12'5.删除表和数据库drop table 表名;drop database 数据库文件名称;6.插入数据插入一条数据insert into.values.;插入多条数据create table 表1.select 表2; insert into 表1.select 表2;7.删除数据delete from 表名 where 条件;8.更新数据update 表名 set 字段名=值,字段=值 where 条件;*符合条件的字段名,字段的更新.条件可已没有*9.查询单表查询select 字段名,字段名 from 表名;(无条件查询)select 字段名,
3、字段名 from 表名 where 条件 and 条件;(有条件查询) and orselect 字段名,字段名 from 表名 where like' '(模糊查询) % select .group by.分组查询查询后的排序order by 字段 asc/desc* order by 针对select 生成的临时表. * order by 后面出现字段,自能来自于select指定字段. * order by 字段名称 / order by 字段在表名的位置10.内置聚合函数mysql聚合函数分类: sum(列名称): 计算当前列中所有数据相加之和 * sum只能针对数字类型
4、列进行运算 max(列名称): 计算当前列中最大数据 * max只能针对数字类型列进行运算 min(列名称):计算当前类中最小的数据 例子: 查询学员中最大年龄和最小年龄 select max(age),min(age) from student count: count(*),计算表中的总行数 *count(字段),计算当前列中所有非空数据的行数 * avg(列): 计算当前列中平均值. avg=sum(age)/count(*) 例子:计算学员的平均年龄. select avg(age) from student11.多表查询主键: * 主键是一种特殊的字段.用于表示一行数据的唯一性.(参
5、考 :身份证编号) * 作为主键的字段,首先内容不允许有空值,并且不能有重复的数据. * 理论上来说,每一张表都应该有一个主键.外键: * 外键是一种特殊的字段,只能存在于多方表中. * 作为外键的字段内容,允许为null. * 外键中的内容必须来自于一方表中的主键值. * 外键用于描述数据之间的隶属关系.非主键字段: * 用于描述主键12.多表查询-内联接查询: * 将存在一对多关系表联接成一张新表,并将符合业务条件的数据检索出来. * 涉及的两张表的数据,并不是都能够被查询出来. 只有当前数据行,在另外一张表中有对应的关联数据时,才能被检索出来.13. SQL92 与 SQL99 SQL9
6、2 : 可读性较差. where : 读取合法的数据 根据业务进行具体判断 SQL99: 可读性较高. from 表1 join 表2 on 读取合法的数据判断 where 根据业务进行具体判断 14.多表查询-外联接查询* 联接查询分类:内联接查询 : 只有当前数据行,在对应表中有关联数据,才能被检索出来.外联接查询 : 将要操作的两张表中的一张表无条件检索出来,而另一个张表中的数据只有在符合条件的情况下,才能读取出来.* 外联接查询分类:左外联接查询 :from 左表 left join 右表 on 一方主键 = 多方表外键 (面试题型) 1. 左表数据无条件,全部检索出来. 2. 右表数
7、据只有满足 on 条件时才能被检索出来.0 右外联接查询 :from 左表 right join 右表 on 一方主键 = 多方表外键 1. 右表数据无条件,全部检索出来. 2. 左表数据只有满足 on 条件时才能被检索出来.15.别名:外号 * 在哪里可以使用别名: 1) from 表 起别名 2) select 字段 起别名 * 在使用别名时,要注意程序运行顺序. select ename as name-3 from emp-1 where name like 'A%'-216.多表查询-联合查询 * 作用: 将彼此之间没有关联关系,但结构相同的两张表合成一张表的查询.
8、* 结构相同: 两张表的字段的个数,字段类型,字段排列顺序完全相同. * select 字段1,字段2 from 表1 union select 字段1,字段2 from 表2 * 特征:(面试) 1.联合查询后,生成表的字段自能来自于表1的字段. 2.联合查询后,生成表的记录来自于表1和表2. 3.自动过滤掉重复的数据 4.联合查询后,排序使用的字段只能来自于表1中的字段.17.* union all 和 union (面试) * union 自动过滤掉重复的数据 * union all 不会过滤掉重复的数据18.多表查询-子查询.(辅助) * 子查询: 将一条查询语句嵌套在其他的查询语句
9、* 子查询允许出现的位置及其作用. 1. where 允许出现 返回具体数据,可以一个具体的数据,也可以若干个具体数据. 2. select 允许出现 返回的数据作为查询中一个字段.并且可以使用select 所获的字段中数据 3. from 允许出现 返回的数据作为一张临时表 4. having 语序出现 返回的具体数据,用于参与逻辑判断.总结:单表查询: 1. from 2. where 3. group by 4. having 5. select 6. order by 7. limit 多表查询:联接查询 (一对关系) 内连接查询 : 当前数据行,在关联表中有关联的数据才能被检索出来.
10、 where 主键 = 外键 外联接查询 : 操作的两张表中,有一张表数据无条件情况下,会全部检索出来,而另外一张表中个数据只有在满足条件的情况下才能检索出来. 联合查询: 没有一对多关联关系,但是结构却完全相同的两张表 union union all 子查询理论知识1. 函数: * select 函数() from 表 select 函数(); * dual 表: 只有一个字段,并且只有一行数据.dual表中数据在运行期间,是不能被修改. final String dual = "xxxxxx" * select length('') from dual
11、; 返回 0 select length(null) from dual ; 返回 null2 . 结构体 case when then end case when 条件为真 then sql when 条件为真 then sql end3. 表修改 : 表结构修改 (字段) 表中约束修改表结构修改 (字段): 1.添加新的字段 alter table 表名 add 字段名称 字段数据类型 例子: alter table student add age int; 2. 查看表中字段信息 show create table 表名; 例子: show create table student; 3
12、 .修改字段 数据类型 alter table 表名 modify 修改的字段 新的数据类型; 例子: alter table student modify age varchar(200); 修改字段 名称: alter table 表名 change 旧字段名称 新字段名称 新的数据类型; 例子: alter table student change age sex varchar(5); 4. 删除字段: alter table 表名 drop 字段名称; 例子: alter table student drop sex; switch(int/char) case 常量: java命令
13、. 表中约束修改 : * 约束:指定表中字段存放数据的特征. * 约束种类:(面试) 1. 非空约束 not null 要求当前字段中不允许出现null值. 2. 唯一性约束 要求当前字段中数据不允许出现重复的内容. 3. 主键约束 primary 要求当前字段中不允许出现null值,不允许出现重复的内容 主键约束 = 非空约束 + 唯一性约束. 4. 外键约束 foreign 1 要求当前外键字段的内容,必须来自于一方表中主键. 2 如果一方中数据,在多方表有关联数据,是不能够被直接删除的. * 非空约束 not null 1)为字段添加非空约束 alter table 表名 modify
14、字段名称 数据类型 not null; alter table emp modify ename varchar(10) not null; 2)为字段添加非空约束,并制定默认值. alter table 表名 modify 字段名称 数据类型 not null default 数据 alter table emp modify ename varchar(10) not null default 'emp_name' 3) 删除字段上非空约束 alter table 表名 modify 字段名称 数据类型 * 唯一性约束 unique 1) 为字段添加唯一性约束 alter
15、table 表名称 add constraint 约束对象名称 unique(绑定的字段名称); * 当字段中已经存在了重复的数据时,是无法为当前字段添加唯一性约束. 2) 为字段删除唯一性约束 alter table 表名称 drop index 约束对象名称 * 主键约束: primary 1) 为字段添加主键约束 alter table 表名称 add constraint 约束对象名称 primary key(绑定的字段名称); 2) 为字段移除主键约束 alter table 表名称 drop primary key; *外键约束: 外键约束创建时,必须满足条件. 1.要求与当前多方
16、表关联一方表中,必须存在一个主键约束 2.要求多方表中外键字段的数据类型,必须与一方表中主键字段的数据类型完全相同(数据类型名称和长度) dept(一方) emp(多方表) deptno(pk) varchar(100) deptno varchar(50) 1)添加外键约束 lter table 多方表 add constraint 约束对象名称 foreign key(多方表外键字段) references 一方表(主键字段) 例子: alter table SC add constraint sc_fk foreign key(SNO) references S(sno); 2) 删除外
17、键约束 alter table 多方表 drop foreign key 外键约束对象; 3) 级联操作外键约束 * 级联操作 : 当一方表中数据发生变化时,关联的多方表中数据也会发生相应变化. alter table 多方表 add constraint 约束对象名称 foreign key(多方表外键) references 一方表(主键字段) on delete cascade / 级联删除功能外键约束. 删除一方表中记录时,多方表中与之关联的数据会被自动删除掉 例子: alter table SC add constraint sc_fk foreign key(SNO) refere
18、nces S(sno) on delete cascade; 4) 级联操作外键约束: 一方表中数据的主键值发生变化,在多方表关联数据的外键值也会发生相应变化 alter table SC add constraint sc_fk foreign key(SNO) references S(sno) on update cascade;- 索引:索引是一种特殊算法,用于提高查询速度. 索引使用二叉树形式保存字段中的数据,在查询时,减少遍历数据的行数,因此提高查询的效率. 1) 为表中字段添加索引 create index test_index on emp (sal); 2) 判断索引是否起作
19、用. explain 查询语句 3) 查看表中拥有索引信 show index from 表名 4) 何种表适合添加索引. 1.表中数据量巨大. 2.表中的数据很少被修改. 城市信息表 视图: view * 作用: 保存复杂的sql语句,方便以后使用. * 创建视图 create view 视图对象 as sql 例子: create view myView as select * from score; String myView ="select * from score" create view view_1 as select sname, sum(case cna
20、me when 'java' then sc end) as JAVA, sum(case cname when 'oracle' then sc end) as ORACLE, sum(case cname when 'html' then sc end) as HTML from score group by sname * 使用视图 select * from 视图对象 MySql事务管理: 允许程序员撤销之前对数据库的操作,使得数据库可以恢复到操作之前状态. MySql事务管理使用: 1) mysql提供默认事务管理方式 2) 由程序员手
21、动设置的事务管理方式 1) mysql提供默认事务管理方式: MySql 每次接受到一条sql命令,都会生成一个全新的事务对象, Mysql 将这条sql命令封装到这个事务对象中,并自动完成提交工作. 2) 由程序员手动设置的事务管理方式: * set autocommit ='off' (1) 通知MYSQL数据库,从此刻开始,接受所有的sql命令,都放入到同一个事务对象中. (2) 在这个事务对象中的sql命令,不能被自动执行.只有收到相应命令才能执行. * start transaction; 通知 mysql 创建一个事务对象,用于接受sql命令. * 输入sql命令
22、此时输入的所有的sql命令,都被放入到同一个事务对象中. * 如果输入的sql命令在执行时,没有语法错误, commit; * 如果输入得sql命令,存在语法错误或则业务错误 rollback; / 回滚命令,让数据库恢复到 set autocomit='off' MySql事务管理实现原理: 在内存开辟一块内存,这块内存成为事务对象. 将sql命令保存到这个事务对象中. 根据当时的具体情况. commit: 通知MySQL执行当前事务对象中sql命令. rollback: 通知MySQL销毁掉当前事务对象. MYSQL事务管理的四大特征(ACID):(面试) A : 原子性:
23、 1) 所有的sql命令都应该存入到同一个事务对象中. 2) 事务对象中所有的sql命令,要么都被执行(commit).要么都不被执行(rollback) C: 一致性: 执行rollback后,数据库必须回复到事务开始之前状态. I: 隔离性: 当多个用户操作同一个表时,每一个用户都会被分配一个事务对象. 理论上,这些事务对象彼此不应该互相影响. D: 持久性: commit之后,无法通过rollback进行回滚操作 事务隔离级别: 脏读取(Dirty Read): 事务A 向表中插入一条数据.在事务A没有执行commit之前. 事务B 可以查看到表中新增数据 不可重复读(Non-repea
24、table Read) 事务A select * from t 事务B insert into select * from t 幻像读(Phantom Read) 事务 A 事务B select 查询不到表中新的记录 INSERT INTO commit; commit 提交之后 select 表中的新数据 四种事务隔离级别管理方式: 例子: 银行转账系统 create table account( name varchar(200), money int ); insert into account values('zhangsan',10000); insert into account values('lisi',0); 张三转账3000元给李四 张三事务: update account set money =money-3000 where name='zhangsan' update account set money=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学校药品器材安全警示标识
- 实验室事故报告流程
- 电子产品生产资产管理指南
- 2024年艺人演艺事业发展规划3篇
- 油气开采挖机设备租赁合同
- 高铁工程预应力施工协议
- 轨道车物料成本优化
- 铁路建设临时用电服务合同
- 保险服务合同管理细则
- 体育场馆车辆管理规定
- 2025届东莞东华高级中学高二物理第一学期期末检测试题含解析
- 剪刀式登高车安全技术交底
- 工厂铣工安全培训课件
- 餐饮组织架构图(完整版)-20210618215128
- 科研管理年终总结汇报
- 部编版语文小学五年级上学期期末试卷与参考答案(2024-2025学年)
- 2024重庆城建控股(集团)限责任公司招聘高频难、易错点500题模拟试题附带答案详解
- 河南省郑州市2023-2024学年高二上学期期末考试政治试题 附答案
- 儿科吸痰小讲课
- 12S522-混凝土模块式排水检查井
- 2024-秋季新版人教版三年级上册英语单词
评论
0/150
提交评论