MySQL是一款Oracle公司出口的轻量级数据库软件,广泛应用于互联网场景,同时也是目前最主流的数据库。
MySQL相对于文件系统,优点如下:
1.mysql的结构相对于文件系统更方便管理
2.mysql支持各种编程语言
3.mysql比文件系统支持更大规模的数据
4.mysql更具备扩展性
5.mysql数据能更快检索
6.mysql支持分布式
DDL:数据库定义语句,用于数据库,表,列的管理,create,drop,alter
DML:数据库表中的CUD,表数据的增删改,insert,update,delete
DQL:表数据的查询:select
DCL:权限控制
TCL:事务控制
CCL:指针控制,指针管理
软件:mysql是数据库软件
数据库:仓库,是一个数据仓库(数据库管理系统)。通常一个项目对应了一个数据库
数据表:一个数据库中有无数张表,表中存放了数据
列:数据表的表头, 表头由一列列组成
-- 用户管理 -- SELECT 列名,列名,... from mysql.user; SELECT host,user FROM mysql.user; -- 创建用户 -- host表示允许哪些ip地址能访问 改成%就是所有人都能连接 -- CREATE user '用户名'@'ip地址' IDENTIFIED BY '密码'; CREATE user 'zs' @ 'localhost' IDENTIFIED BY '123'; -- 修改密码 alter user 'zs' @ 'localhost' IDENTIFIED BY '456';
-- 权限管理
-- 用户授权
-- grant 权限码 on 数据库名.表名 to 用户名@主机名 identified by 'password';
grant all on *.* to 'zs'@'localhost';
-- 查看用户权限
-- show grants for 用户名@主机名;
show grants for 'zs' @ 'localhost';
-- 取消用户权限
-- REVOKE 权限码 ON 库名.表名 FROM 用户名@主机名
REVOKE all on *.* FROM 'zs' @ 'localhost';
-- 刷新权限
FLUSH PRIVILEGES;
-- 创建数据库 -- create database 数据库名称; -- 直接创建 -- create database if not exists 数据库名称; -- 如果不存在 -- create database if not exists 数据库名称 character set 编码; --创建并指定编码 -- CREATE DATABASE db2; -- CREATE DATABASE IF NOT EXISTS db2; CREATE DATABASE IF NOT EXISTS db2 CHARACTER SET 'utf8'; -- 推荐 -- 查看当前所有数据库 -- show DATABASES; -- 查看数据库定义语句 SHOW CREATE DATABASE db2; -- 修改数据库字符集 -- ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 字符集 ALTER DATABASE db2 DEFAULT CHARACTER SET 'utf8'; -- 使用数据库(一般用于命令行下使用) use db1; select * from tb_user;
-- 创建数据库
create DATABASE db1 CHARACTER SET 'utf8';
-- 使用数据库
use db1;
-- 创建用户表
-- CREATE TABLE 表名(
-- 字段名 字段类型(长度),
...
-- )ENGINE = INNODB 代表数据库引擎,不同引擎有不同的效果,默认是innodb,innodb是一个支持事务的数据库引擎
--
CREATE TABLE if not EXISTS t_user(
name VARCHAR(255),
sex VARCHAR(255),
age INT(3)
) ENGINE = INNODB DEFAULT CHARSET 'utf8';
-- 快速创建一张表结构一样的表
-- CREATE TABLE 新表名 LIKE 旧表名
CREATE TABLE t_user2 LIKE t_user1;
-- 查看表
-- 1.查看当前数据库下有哪些表
show TABLES;
-- 2.查看表的结构
DESC t_user;
-- 3.查看建表语句
SHOW CREATE TABLE t_user;
-- 删除表
DROP TABLE t_user;
-- 修改表
-- 1.添加列
-- ALTER TABLE 表名 add 列名 类型
ALTER TABLE t_user ADD address VARCHAR(255);
-- 2.修改列类型
-- ALTER TABLE 表名 MODIFY 列名 新的数据类型
ALTER TABLE t_user MODIFY sex char(2);
-- 3.修改列名
-- ALTER TABLE 表名 CHANGE 旧列名 新列名 类型;
ALTER TABLE t_user CHANGE name username VARCHAR(255);
-- 4.删除列
-- ALTER TABLE 表名 DROP 列名
ALTER TABLE t_user DROP address;
-- 5.修改表名
-- RENAME TABLE 表名 to 新表名
RENAME TABLE t_user to t_user1;
-- 6.修改字符集
-- ALTER TABLE 表名 CHARACTER set 字符集;
ALTER TABLE t_user1 CHARACTER set 'utf8';
整数:
int(常用)
bigint(常用)
浮点:
float
double(常用)
定点小数:
decimal
日期时间:
datetime(常用)
date(常用)
字符:
char:定长字符串
varchar:变长字符串(常用)
longtext:超大文本
枚举
set
CREATE TABLE test(
d1 int,
d2 bigint,
d3 float(4,3),
d4 double(10,4),
d5 datetime,
d6 date,
d7 char(3),
d8 VARCHAR(255),
d9 LONGTEXT
)ENGINE=INNODB DEFAULT CHARSET 'utf8';
-- 向表中添加一行数据
-- insert into 表名(列名,...) values(值1,值2...);
insert into t_user1(username,age,sex) VALUES('张三',20,'男');
-- 批量操作
-- insert into 表名(列名,...) values(值1,值2...),(值1,值2...),(值1,值2...)...;
INSERT INTO t_user1(username,age,sex) VALUES('张三',18,'男'),('张三',18,'男'),('张三',18,'男');
insert into t_user1(username) VALUES('张三');
-- 删除表中数据
-- 删除数据
-- delete from 表名 where 列名=值 and 列名=值 and 列名=值;
DELETE FROM t_user1 WHERE age = 18;
-- 修改表中数据
-- update 表名 set 列名=值 , 列名 = 值...
UPDATE t_user1 set username='李四',sex = '男' WHERE age = 20;
-- 查询表中数据
-- select 列名,... from 表名 where 列名=值;
select username,age,sex from t_user1;
select * from t_user1;