2019北京培训:MySQLday1
1.基本概念
1)数据库:以某种方式保存数据的集合
2)数据库应用程序:使用数据库的方式保存数据,以其他语言开发的程序。
3)数据库管理系统:管理数据库的软件,可以对数据库进行增删查改、备份等。例如MySQL、Oracle
4)数据库管理员:管理和维护数据库管理系统的人员
5)数据库开发工程师:使用数据库开发应用程序的工程师
2.数据库的分类
1)传统的数据库:关系型数据库SQL,特点:以表为单位保存数据。
一行记录为一条数据,一列的名称叫字段。
MySQL、Oracle、MS SQL server、Sybase、DB2、Excel...
2)新兴的数据库:非关系型数据库 NoSQL(Not only SQL)
保存方式多种多样,数据没有固定格式。
3.MySQL数据类型
整数 |
tinyintàbyte smallintàshort intàint bigintàlong |
浮点 |
float double |
定长字符串 |
char(n):n表示长度,效率高 |
变长字符串 |
varchar(n):n表示最大长度 |
日期时间类型 |
date:保存日期 time:保存时间 datetime:同时保存日期和时间 timestamp:保存日期、时间和微秒数 |
4.数据约束
数据约束的作用:保证数据的安全性、完整性和一致性。
非空约束 Not null |
必须有值,不能为null值 |
唯一约束 unique |
一个字段中的所有值不可重复 |
主键约束=非空+唯一 Primary key |
每个表都应当有一个主键,没有实际意义,可以唯一的表示一条记录 |
检查约束 Check |
规定一个字段中的数据必须符合某种条件(MySQL不支持) |
外键约束 Foreign key |
体现表和表的关系,一个字段引用了另一个表中的字段值 |
5.结构化查询语言SQL
作用:用来给数据库管理系统发送指令
特点:不区分大小写
分类:
数据查询语言DQL |
Select |
查询数据 |
数据定义语言DDL |
Create Alter Drop |
创建对象 修改对象 删除对象 |
数据操纵语言DML |
Insert Update Delete |
插入数据 修改数据 删除数据 |
数据控制语言DCL |
Grant Revoke |
授予权限 收回权限 |
事务控制语言TCL |
Commit Rollback |
提交事务 回滚事务 |
6.注释
#单行注释
-- 单行注释
/*多行注释*/
7.操作数据库
#查看所有的数据库 show databases; #创建数据库 create database xuyundatabase; #切换使用的数据库 use xuyundatabase; #查看当前数据库中所有表 show tables; #创建用户 #create user 用户名@主机名 identified by '密码'; create user xuyun@localhost identified by 'xuyun'; #授予权限 #grant all on 数据库名.表名 to 用户名@主机名; grant all on xuyundatabase.* to xuyun@localhost; #收回权限 revoke all on xuyundatabase.* from xuyun@localhost; #删除用户 drop user xuyun@localhost; |
8.操作表
(1)创建表:
Create table 表名( 字段名 字段类型 约束, 字段名 字段类型 约束, …… ) charset=utf8 ; |
注意:最后一个字段之后没有逗号。
MySQL中可以在创建表时指定字符集编码
(2)删除表:
Drop table 表名; |
(3)查看表结构:
Desc 表名; |
(4)修改表
#增加字段 #alter table 表名 add 字段名 字段类型 约束; alter table t_student add cid int not null references t_class(id); #修改字段类型 #alter table 表名 modify 字段名 字段类型 约束; alter table t_student modify name varchar(100) not null; #修改字段名 #alter table t_student rename column birth to birthdate;#版本问题? #alter table 表名 change 字段名 新字段名 字段类型 约束; alter table t_student change birth birthdate date; #删除字段 #alter table 表名 drop [column] 字段名; alter table t_student drop cid; #重命名表 #alter table 表名 rename to 新表名;(SQL通用) alter table t_student rename to t_student1; #rename table 表名 to 新表名;(MySQL) rename table t_student1 to t_student; |
(5)重建表:
Truncate table 表名; |
意义:一次性删除所有数据,重新创建表。
注意:应该在此表不含外键或索引试图的情况下使用truncate进行表的重建,不然不生效。要么取消外键,再truncate。要么使用delete进行级联删除。
9.操作数据
(1)增加数据insert
Insert into 表名 (字段名,字段名,……) Values (值,值,……); Insert into 表名 values(值,值,……); |
如果省略字段,则所有值必须和表中所定义的类型、顺序、个数完全相同。
(2)查询数据select
Select * from 表名; |
查询一个表中的所有数据
(3)修改数据update
Update 表名 set 字段=值,字段=值,…… Where 条件; |
(4)删除数据delete
Delete from 表名 where 条件; |
10.日期类型
获取当前系统时间:
Select sysdate() from dual; |
Sysdate()是MySQL的函数,可以获得当前系统时间
Dual,是一个虚表,用来查询系统时间等其他信息,为了保证select语句的完整性
在更新数据时,可以直接使用sysdate()表示当前时间
把字符串转换成date:str_to_date(‘日期字符串’,’格式字符串’)
把日期字符串按照格式字符串规定的格式转换成日期类型
把date转换成字符串:date_format(时间,‘格式字符串’)
把时间按照格式字符串规定的格式转换成字符串
%y |
2位年份 |
%Y |
4位年份 |
%m |
月份 |
%d |
日期 |
%H |
24小时制 |
%h |
12小时制 |
%i |
分钟 |
%s |
秒 |
11.查询语句
(1)基本查询:
#效率低 Select * from 表名; #效率高,可以查询部分字段 Select 字段名,字段名,...... from 表名; #查询时计算 select id+100,name from t_student; #查询时做字符串拼接:concat() select id,concat(name,'同学') from t_student; #查询时起别名 select id,concat(name,'同学') as name from t_student; #MySQL中可以省略as select id,concat(name,'同学') name from t_student; #查询时排重 select name from t_student; select distinct name from t_student; #不可查询其他字段 #查询时排序 select id,name from t_student order by name desc; select id,name from t_student order by name desc,id desc; #按照多个字段排序 |
- 北京Linux培训机构入门学习:MySQL的日志管理
- 2019北京培训:MySQLday2(select高级查询)
- 2019北京培训:MySQL day3(索引、视图、事务以及设计规范)
- 2019北京培训:JDBC (身体不适,待完成)
- 北京Linux入门培训机构:MySQL复制的实现
- 北京Linux学习培训机构:MySQL的备份和恢复
- C++使用MySQL-Connector/C++连接MySQL出现LNK2019错误的解决方法
- 一些培训课程mysql R sas java python oracle
- 北京高级软件需求分析师培训招生!
- 系统集成资质培训 - 公告(北京、杭州)
- 中国过程改进年会会前培训:让敏捷落地!- 软件研发管理最佳实践(2012-5-30 北京)
- 2015年3月北京系统集成资质考试(软考)培训
- Mysql 培训
- 北京Linux培训入门学习:MySQL分布式应用
- JFlow CCFlow工作流引擎北京培训邀请函
- 福州培训Day1普及组
- 【java web 培训】java.lang.ClassNotFoundException: com.mysql.jdbc.Driver(转载,已实现)
- 北京善知堂android培训
- 2017北京国庆刷题Day1 morning T2