数据库基础

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,独享表空间会产生两个文件,扩展名分别是ibdfrm

共享表空间会产生一个文件,扩展名是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

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值