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数据类型

整数

mysql 与 java 类型对应

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;

#按照多个字段排序

2019北京培训:MySQLday1相关推荐

  1. 2019北京国际智能-智慧教育产品展

    智慧教育离不开智慧校园和智慧课堂. 智慧校园是一个有社会交互的学习环境,在线学习和团体学习并不互斥,学生可以互动和合作.智慧课堂由一个单一演讲者主导的教室变成研讨室,学生可以在老师的指导下聚在一起交换 ...

  2. 2019北京智源大会在京开幕, 中外学术大咖共话人工智能研究前沿

    10月31日,由北京智源人工智能研究院主办的2019北京智源大会在国家会议中心开幕,会期两天.智源大会是北京创建全球人工智能学术和创新最优生态的标志性学术活动,定位于"内行的AI盛会&quo ...

  3. 从LiveVideoStackCon 2019北京看多媒体技术趋势

    AI,超高清,沉浸式,HDR,低延迟. 文 / 包研 8月23-24日,LiveVideoStackCon 2019北京两天的多媒体技术盛宴落下帷幕,80多场分享与交流,多场社交与闭门会议,数百人顶级 ...

  4. LiveVideoStackCon 2019北京 优秀出品人与讲师

    感谢LiveVideoStackCon 2019 北京所有出品人与讲师不遗余力的支持与贡献. 在10余位出品人以及80余位讲师的共同支持与努力下,为期两天的 LiveVideoStackCon 201 ...

  5. LiveVideoStackCon 2019北京 Day One精彩瞬间

    意犹未尽,精彩继续,开放交流,生态共赢. 8月23日是LiveVideoStackCon 2019北京音视频技术大会第一天,这是这一全球顶级的音视频技术大会连续第三次在北京举行.大约有550名多媒体技 ...

  6. LiveVideoStackCon 2019北京开幕 成为多媒体技术生态风向标

    两天盛会,87名技术专家带来了多媒体技术前沿实践与案例. LiveVideoStack--遨游"视"界,做你所想 8月23日-24日,全球领先的多媒体技术峰会--LiveVideo ...

  7. LiveVideoStackCon 2019北京你来吗?

    2027年是LiveVideoStackCon第十年,届时把前几届的讲师和参会者都请来,感受下时光与成长. 文 / 包研 2016年年中我刚刚来到迅达云,当时正处在人生的又一个迷茫期.此前几年已经习惯 ...

  8. LiveVideoStackCon 2019北京日程发布

    LiveVideoStackCon 2019北京音视频技术大会即将于8月23-24日召开,经过团队与各专题出品人.大会联席主席的努力,今天,我们公布了LiveVideoStackCon 2019 北京 ...

  9. 科技前沿智能创新 2019北京智能家居 全屋智能博览会

    2019北京智能家居大型展览会 2019北京全屋智能家居博览会 报道布展:2019年6月26日-27日 展会开幕:2019年6月28日上午9:00时 展会交易:2019年6月28日-30日 展会撤展: ...

最新文章

  1. Mybatis学习记录(二)----mybatis开发dao的方法
  2. 科达南沙电子警察“扩编”
  3. 【Python】时间处理:日期减少n年(考虑闰年)
  4. 安装 groovy eclipse 插件
  5. 改不改,这是一个问题
  6. KVC(Key-Value-Coding)和KVO(Key-Value-Observer)
  7. Swift中文教程(三) 字符串和字符
  8. 爬取常用的网站,整理成API:中国联通,大众点评,IT桔子,拉勾网,猫眼电影,人人贷......
  9. angularJS使用编写KindEditor,UEidtor,jQuery指令,双重绑定
  10. springboot整合lua脚本
  11. Mint UI - 饿了么出品的开源、轻量的移动端 UI 组件库
  12. 操作系统 | Linux基础教程
  13. python编写摇骰子游戏_Python使用tkinter实现摇骰子小游戏功能的代码
  14. 用python 数据分析,有推荐的书籍或资料吗?
  15. RTB实时竞价, 重塑网络媒体交易规则
  16. 你对“happen-before原则”的理解可能是错的?
  17. 网易2016研发工程师编程题--完全解析
  18. 应用数学考研跨考计算机,数学专业考研三大方向_跨考网
  19. freemarker macro宏定义
  20. ubuntu | 命令行中输出文件夹下的文件+输出某个后缀的文件+文件名作为参数运行py脚本

热门文章

  1. [框架]PureMVC--核心层源码
  2. 概率论与数理统计 第一章 概率论的基本概念 要点复习笔记
  3. 在碟片里奔驰-我的看碟人生
  4. 分类信息网络赚钱网络收益团队,安全可靠
  5. 网盘搜索引擎php源码,2016最新百度云网盘搜索引擎源码,附带Python爬虫+PHP网站+Xunsearch搜索引擎...
  6. 用javascript控制调用media player播放器例子[转]
  7. 理解文件偏移相对内存偏移节偏移
  8. JQuery 插件 JQprint 打印功能
  9. 1、OmniGraffle系列-思维导图
  10. ECharts实现中国地图数据可视化