1.登陆mysql
命令:mysql–u root -p
2.设置登录密码
命令:Setpassword for ‘root’@’localhost’=password(‘abc’);
3.显示当前mysql会话使用的字符集
命令:Showvariables like ‘character%’
4.设置数据库字符集
命令:setcharacter_set_database=gbk;
5.设置client、connection、results的字符集命令:set names gbk
Set namesdefault; 使默认值为当前格式
6.执行脚本文件
命令:source d:/mysql/init.sql;
9.创建数据库时指定默认字符集
命令:create database aaa defaultcharacter set gbk;
创建表:create table 表名(列名,列名
创建视图:create view 视图名as <select语句>
创建函数:create function 函数名(形参)
returnsint
no sql/readssql data/modifies sql data
begin
语句;
End;
创建存储过程:create procedure 存储过程名(参数1,参数2,…)
nosql/reads sql data/modifies sql data
begin
语句
end;
37,独享表空间会产生两个文件,扩展名分别是ibd和frm。
共享表空间会产生一个文件,扩展名是frm。
设置独享表空间:Set @@global.innodb_file_per_table=on
设置共享表空间:Set @@global.innodb_file_per_table=off
10.修改已有数据库的字符集
命令:Alterdatabase aaa character set utf8;
12.选择当前操作的数据库
命令:Use aaa;
13.删除数据库
命令:Drop database aaa;
14.设置默认的存储引擎
命令:setdefault_storage_engine=myisam
15. 查看当前的日期时间和当前时间
命令:selectnow() ---日期 时分秒
curtime() ---时分秒
16.创建表
命令:create table 表名(列名 数据类型 约束) engine=myisam default charset=gbk;
17 .设置表空间的类型
查看:show variables like ‘innodb_file_per_table’
命令:set@@global.innodb_file_per_table=off
18.显示当前数据库中的所有表
命令:show tables;
查看所有的全局系统变量信息:show global variables;”
11.查看数据库的结构
命令:Showcreate database aaa
19.显示表结构
命令:desc 表名
20 .修改已有表的存储引擎
命令:alter table 表名 engine=myisam;
21.修改已有表的默认字符集
命令:alter table 表名 default charset gbk;
22.删除表
命令:drop table 表名;
drop table if exists表名;
23.实体完整性约束
命令:primary key、 unique 、auto_increment
Auto_increment一定要和primary key在一起
24.参照完整性约束
命令:foreign key (子表中外键字段名) references 主表(主码字段名)
25.域完整性约束
空值 命令:null、not null
默认值 命令:default
列值 命令:check(mysql不支持)
26.复制表结构
命令1:create table 表名 like 源表
命令2:
create table 新表名 select * from 源表 或
create table 新表名 select * from 源表 where 1=2
27.查看表的定义:
命令:Showcreate table 表名
28.修改表结构中的字段(列)相关信息
①删除字段的命令:
alter table 表名 drop字段名
②添加字段的命令:
alter table 表名 add 新字段名 数据类型 [约束条件 ] [ first | after 旧字段名]
③修改字段名的命令:
alter table 表名 change 旧字段名 新字段名 新数据类型
④修改字段的数据类型的命令:
alter table 表名 modify 字段名 新数据类型
29.修改表结构中的约束条件
添加约束条件的命令:
Alter table 表名 add[constraint 约束名]约束类型(字段名)
删除约束条件的命令:
alter table 表名 drop primary key
alter table 表名 drop foreign key 约束名
alter table 表名 drop index 唯一索引名
30.修改表名
命令1:rename table旧表名 to 新表名
命令2:alter table 旧表名 rename 新表名
31.插入数据
Insert into 表名(列名表) Values()
注:insert与replace的区别
32.修改数据
Update 表名
Set 列名=要修改的值
[Where修改条件]
33.删除数据
Delete from 表名 [Where 修改条件]
注:truncate table表名
• 34,Show function/procedurestatus --查看函数/存储过程的状态
• 调用函数用select,调用存储过程用call
• Drop procrdure存储过程名 --删除某个存储过程
• 35,decimal (5,2)表示小数取值范围:-999.99~999.99
• decimal (5,0)表示: -99999~99999的整数
36.date表示日期,默认格式为‘YYYY-MM-DD’;
time表示时间,格式为‘HH:mm:ss’;
year表示年份
37,
1. 查询全部列应该使用通配符_*_,查询列的同时为列进行重命名使用关键字_as_。
2. 对查询列进行算术运算(会|不会)影响表中实际数据,连接字符类型的列应该使用_concat_。
3. 比较运算符<>含义是_不等于_,!>含义是_不大于_。
4. 范围查询使用_between。。。。。and_关键字,是否包含边界值?包括 5. 保证查询结果不出现重复值使用_distinct_关键字,选取前几个记录果或中间某几个记录使用_limit_关键字。
6.模糊查询的关键字是_like_,表示一个字符的通配符是_‘_’_,多个字符的是_%_。
• 1.MySQL中的函数可以分为__系统函数_和_用户自定义函数__。
• 2. 聚合函数除了_count__函数,一般要求统计的数据类型为_数值类型__,且忽略_空值__,且不能出现在_where子句里_
• 3. 数据转换可以使用__case__函数,单值匹配使用_简单else函数__,较为复杂的多条件比较需要使用_搜索case函数__。
• 4. 对数据结果进行分类使用的关键字是__group by_,如果需要对结果组做进一步筛选需要使用_having _子句。
• 5.WHERE、GROUP BY和HAVING执行的先后顺序是_where, groupby,having__。
• 6.___group_concat()___ 函数还可以按照分组字段,将另一个字段的值(NULL值除外)使用逗号连接起来。
• Showfunction/procedure status --查看函数/存储过程的状态
• 调用函数用select,调用存储过程用call
• Dropprocrdure 存储过程名 --删除某个存储过程
效果如下:
• 7.___with rollup___选项可以为每个分组后加上一条汇总记录
• 效果如下:
•
• 1. 多表查询使用的关键字是_join_。可以分为_内连接_、外连接__和_交叉连接
_三种,其中对两张表都有约束的是内连接_,只对一张表有约束的是_外连接_。
• 2. 在内连接时,_区分不开_情况下必须在字段前加表名, _自连接_情况下必须使用表别名以区分表。使用表别名后(能|不能)继续使用原表名。
• 3. 跟在FROM后的是(左|右)表,跟在JOIN后的是(左|右)表,左外连接对(左|右)表有限制,全外连接未能找到匹配值,用_null_来替代。
4. 联合查询的作用是__合并_,使用关键字_union_,如果想保留重复值需要使用关键字_all__
5个主要聚合函数
Count (*);统计行数 不忽略空值,
以下忽略空值:
Count (列名);统计这一列有多少值
Sum(列)某列和
Avg(列)某列平均值
Max(列)某列最大值
Min(列)
注:集合函数不能出现在where子句中
查询年龄最大的人
select s.student_name from student s wheres.student_birth=(Select student_birth from student where student_birth groupby student_birth asc limit 0,1)//升序
查询1号课程的最高分,最低分,总分,平均分
Select max(score),min(score),sum(score),avg (score)from choose where in course_no(1)
Delect 后直接加的有distinct ,case
例如:selectteacher_name,profession,
CASE profession
when '教授'then '高级'
when '讲师'then '中级'
else '初级
end
from teacher
分组细化集函数
对表中已有的属性进行筛选用where
对分组计算出来值
对分组进行汇总:withriollup
计算圆周率的函数:pi()
三角函数,对函数,指数函数,求近似函数,随机函数,二进制函数,十六机制函数
弧度:radian
mysql中将角度转换位弧度的函数是radians(x)
度:degrees
将弧度转化为角度的函数是degrees(x)
pi()来计算圆周率--数学函数
sprt():表示计算平方根函数--指数函数
round():计算里x最近的整数;
ceil();向上取整
floor();向下取整
rand():返回随机数
字符串函数在对字符串操作时,·字符集、字符序·的设置至关重要。
charset(x):返回x的字符集
collation(x):返回x的字符序
password(x)函数用于对x进行加密,默认返回41位的加密字符串;
md5(x)函数用于对x进行加密,默认返回32位的加密字符串
=======================================
1,实体完整性:通过主码约束,表级,列级都可以,唯一且非空
一张表只有一个主码,但是可以有多个候选码,
2,参照完整性:外码约束,可空可不空
Foreign key(列名)references表名 (列名) 只能是表级
含外码的是子表
3,用户自定义完整性:
自增:auto_increment必须定义为码(unique或者primary key)
唯一:unique
默认:default
书上的知识点:
1,Er图有三要素:实体,属性,联系
1,从计数的角度可以将关系分为一对一,一对多,多对多关系
2,主键(primary key):唯一且非空
3,外键(foreign key(表1字段名)reference 表2 字段名):表级约束
4,更新包括:增加(insert),删除(delete),修改(update)
5,约束:唯一性(unique),非空(not null),默认值约束(default,只能是列级),自增约束:auto_increment (一定唯一 :unique)
自增主码:auto_increment primary key
6,默认的引擎(engine)是:innoDB,支持事务和外码;myISAM引擎以高速著称
7,Mesql服务器使用3306端口号,默认用户是root
8,Setname gbk 可以一次性的设置character_set_client和character_set_connection 和character_set_results的字符集为gbk
10,调用脚本文件用source,如:source inin.sql;创建数据库:createdatabase 名字
11,查看数据库:show databases;选择当前数据库:use 名字;删除数据库:drop database 名字;
12,设置默认的引擎:set default_storage_engine=myisam
13,显示所有表:show tables,
显示某个表的结构:desc 名字 /show create table 名字
14,·innodb的表空间:独{ibd,frm}—on
共{frm}----------off
默认是独的(on)
·myisam的文件是:frm,myd(数据文件),myi(索引文件)
15,实体完整性是对主码的约束。
16,用户自定义{用户会话变量->全局,@
{用户局部变量
17小数点类型:decimal(5,2)-à表示一共5位数,后两位是小数
18字符串类型:char,varchar
19,date表示日期(yy-mm-dd),time表示时间,datetime表示日期时间(yy-mm-dd hh:ii:ss)
20,函数:now()
21,删除字段:alter table 表名 drop 字段名
添加新字段:alter table 表名 add 新字段名 [first/after 别的字段名]==》表示添加新字段在第一行/在别的字段名后一行
修改字段名:alter table 表名 change 旧名 新名 数据类型
22,修改表名:rename table 旧名 to 新名
Alter table 旧名 rename 新名
23,插入新纪录:insert into 表名values (值列表)
24,delete/truncate,truncate可以清空一个表,delete不清除自增起点
Insert/replace.,replace语句想表中插入记录时,如果新纪录的主键值或者唯一性约束的字段值与旧记录相同时,则旧记录先被删除再插入
25:group by的作用是细化集函数
Distinct 的作用去掉重复的行
Order by 字段名 desc(降序),(升序)asc
Limit(2,4)从3行开始,显示4行
Having的作用:
行=组=记录
26,count(*):统计所有行
表名.*: 所有列
27,内连接: join; 外连接:left/right join;交叉连接:crossjoin;
28,is null :判断表达式的值是否为空值null:表达式 is [not] null
29,表达式 between 起始值 and 终止值
30, select * from student wherestudent_name like ‘%三%’ like模糊查询
‘%’代表多个字符
‘_’代表一个字符
31合并结果集:union (列表数要一致)
32,子查询的exists返回true/false
33,表达式1>any(表达式2) 大于最小值;表达式1>all(表达式2) 大于最
大值
34,系统变量:以@@开头{会话系统变量,全局系统变量}
用户自定义变量{用户会话变量(以@开头),局部变量}
35,定义用户会话变量:
方法一:set@user_var=’张三’
方法二:select@ user_var:=‘张三’或者 select ‘张三’,’李四’ into @user_var,@user_var2
局部变量定义:declare xxx ;如:declare cj decimal(5,2) default 0
36创建函数:create function 函数名(参数名,类型)
Returns 类型
Reads sql data/no sql/modifies sql data
Begin
函数体;
Return 变量名;
End;
37,显示当前自定义函数的信息:show function status/show function status like 模式;删除函数:dropfunction 函数名;
38,case 表达式
When xxx then sss;
When xxx then sss;
Else语句块;
Endcase;
39,循环语句:while ,loop,repeat
·
循环标签:while 表达式
Do{
;}
End while 循环标签;
*leave循环标签;== 跳出当前循环语句
*iterate循环标签;==结束本次循环
·表达式值为false就循环,true 就停止
[循环标签]:repeat
循环体;
Until 表达式
End repeat [循环标签]
*[循环标签]:loop
循环体;
If 表达式 then
leave[循环标签]
end if;
end loop;
40,curdate():获得当前日期
Now()获得当前日期时间
Year(): 获得年份
Mouth();
Dayofmouth()
Hour()
Minute()
Second()
41,创建视图:create view as。。。。。
删除视图:dropview 名字
修改视图:alterview as
视图的作用:安全,提高了数据的逻辑独立性
42,创建存储过程:create procedure 名字(in 参数名 类型,out参数名 类型)
Reads sql data/no sql/modifiessql data
Begin
Xxx;
End;
参数有(in,out,inout)
删除:drop procedure 名字
43,调用函数用select ,调用存储过程用call
44,存储过程与函数的比较
相同:都可以重复调用。都增加了数据的安全访问控制
不同:函数必须有一个返回值,且指定返回子类型,存储过程不用;函数可以嵌套在sql语句中,而存储过程一般单独调用
这个HAVING子句的作用就是为每一个组指定条件
from->where->groupby->having->order by