一、Mysql简介
MySQL是一个开源的关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于Oracle 旗下产品。
特点
- 免费、开源。
- 小巧,功能齐全。
- 使用便捷。
- 支持多种存储引擎。
- 可以运行于Linux、Windwos系统
- 适用于中小型网站。
二、mysql常用数据类型
整数:int、bigint(大整数—相当于long) 3个字节。
浮点数:float、double、decimal 8个字节。
时间类型:date(yyyy-mm-dd)、datetime(yyyy-mm-dd hh:mm:ss)、timestamp(yyyy-mm-dd hh:mm:ss) 4个字节。
文本字符串:char 、varchar。
数据类型选择
一般整数用int、浮点数用double、时间类型用datatime、字符串用varchar。
三、sql分类
在Mysql中sql分为四种。
DDL(数据定义语言–对数据库结构进行操作):drop、create、alter。
DML(数据操作语言–对表数据进行操作):insert、update、delete。
DQL(数据查询语言):select。
DCL(数据控制语言):grant、revoke、commit、rollback。
四、DDL操作
4.1、数据库的操作
#创建数据库
CREATE DATABASE mysql_study
#使用数据库
USE mysql_study
#查看所有数据库
SHOW DATABASES
#删除数据库
DROP DATABASE mysql_study
#查看数据库引擎 mysql默认数据库引擎为InnoDB
SHOW ENGINES
4.2、数据表的操作
#创建数据表 create table 表名字 (字段名 数据类型 约束条件 默认值),.....
CREATE TABLE t_user (
id INT (11),
NAME VARCHAR(20),
sex VARCHAR(2)
)
#删除数据表
DROP TABLE t_user;
#设置主键约束 (主键是唯一的,不能为空值,可以结合外键用来描述不同数据表之间的关系)。
#语法1 字段名 数据类型 primary key 默认值
CREATE TABLE t_user (
id INT (11) PRIMARY KEY
)
#语法2 primary key (需要设置为主键的字段) 注意:与上一个字段之间需要逗号隔开
CREATE TABLE t_user (
id INT (11) ,
PRIMARY KEY(id)
)
#语法3 多字段联合主键 primary key(字段1,字段2.....)
CREATE TABLE t_user (
id INT (11) ,
dept_id INT (11) ,
PRIMARY KEY(id,dept_id)
)
#外键约束 外键主要用来简历多个表之间的关系,可是一列或者多列。
# 语法1 constraint 外键名 foreign key (需要设置为外键的id) references 另一个表 (另一个表的主键)
CREATE TABLE t_dept (
id INT (11) PRIMARY KEY,
dept_name VARCHAR(20),
CONSTRAINT fk_user_id FOREIGN KEY (id) REFERENCES t_user(id)
)
#非空约束 就是字段插入数据的时候不能为空
#语法:字段名 数据类型 not null
CREATE TABLE t_test1 (
id INT (11) PRIMARY KEY NOT NULL
)
#唯一性约束 要求该列唯一 能出现一个空值
#语法:字段名 数据类型 unique
CREATE TABLE t_test3 (
id INT (11) UNIQUE PRIMARY KEY
)
#默认约束 设置字段默认值
#语法:字段名 数据类型 default 值
CREATE TABLE t_test4 (
id INT (11) UNIQUE PRIMARY KEY DEFAULT 4
)
#自增长 插入数据的时候不需要指定插入id会自动+1
#语法:字段名 数据类型 AUTO_INCREMENT
CREATE TABLE t_test5 (
id INT (11) UNIQUE PRIMARY KEY AUTO_INCREMENT
)
#查看表结构
#语法:desc 表名
DESC t_user
#查看表详细结构
#语法:show create 表名
SHOW CREATE TABLE t_user
#修改表
#语法 alter table 需要操作的表名
#修改表名字
#语法:alter table 表名 rename 新的名字
ALTER TABLE t_user RENAME USER
#修改表的字段类型
#语法:alter table 表名 modify 字段名 数据类型
ALTER TABLE t_user MODIFY dept_id BIGINT
#修改字段名
#语法:alter table 表名 change 字段名 新的字段名 数据类型
ALTER TABLE t_user CHANGE deptId dept_id BIGINT
#删除字段
#语法:ALTER TABLE 表名字 DROP 字段名
ALTER TABLE t_user DROP username
#更改表的存储引擎
#Mysql的引擎主要有MyISAM、InnoDB、MEMORY、BDB、FEDERATED.
#语法1:create table 表名字() ENGINE=INNODB DEFAULT CHARSET=gb2312
CREATE TABLE t_test6 (
id INT (11) UNIQUE PRIMARY KEY DEFAULT 4
)ENGINE=INNODB DEFAULT CHARSET=gb2312
#语法2:ALTER TABLE 表名字 ENGINE=引擎名字
ALTER TABLE t_test6 ENGINE=INNODB
#删除外键
#语法 ALTER TABLE 表名字 DROP FOREIGN KEY(外键名)
ALTER TABLE t_user DROP FOREIGN KEY(fk_user_id)
#删除表
#语法 drop table 表名字
DROP TABLE USER
五、DML操作
5.1、(insert)插入数据
#插入数据
#语法:insert into表名 values (值1,值2)
#注意:值的类型要和字段类型对应,如果有自动增长的列需要指定列名添加,多条数据添加逗号隔开
INSERT INTO users(username) VALUES('张三')
#多条添加
INSERT INTO users(username) VALUES('王五'),('李四')
#将添加的结果保存到另一个表
#语法:INSERT INTO 插入的表名 (字段) select 查询的字段 from 查询的表名字
INSERT INTO users (username) SELECT username FROM users
5.2、(delete)删除数据
#删除表数据
#安装条件删除id为1的人
#语法 delete from 表名字 where 条件
DELETE FROM users WHERE id=1
#删除整个表的数据
DELETE FROM users
5.3、(update) 修改数据
#按照条件修改
#语法:UPDATE 表名字 SET 列名1=值,列名2=值.... WHERE 条件
#修改id为1的项目
UPDATE users SET username='李四' WHERE id=1
#修改整个表某个字段所有的数据 (不推荐)
UPDATE users SET username='张三'
六、DQL操作
6.1、单表查询
语法:select 字段1,字段2 from 表名 或者视图 where 查询条件。
#查询所有 *代表所有
select * from user
#查询指定列名的数据
select username from user
</