什么是数据库
数据库本质上就是文件系统,是存储和管理数据的仓库。
启动/关闭 mysql
net start/stop mysql
要配环境变量
目录结构
Program files下有mysql文件夹,存的是程序相关的代码、文档
ProgramData下是配置文件。my.ini是配置文件,Data里面是表的信息
默认数据库
infomation..... 保存其他数据库的信息
mysql 保存用户和权限相关的信息
performance.... 监控性能用的
sys 记录了DBA所需要的信息,比如哪些SQL慢。更方便DBA了解数据库运行情况。
SQL
注释
-- /**/ # 三种方式。注意第一种方式要加空格
数据类型
int double varchar date(只显示年月日 yyyy-MM-dd) datetime(yyyy-MM-dd HH:mm:ss) char
varchar是可变长的类型,存储字符串的时候只使用所需的空间。
char是固定长度的,指定多少长度,创建时就使用多少。
分类
DDL 操作库和表的。建库建表等等。
DML 对数据进行CRUD的
DQL 查询表中数据
DCL 创建用户、管理权限
DDL
# 默认Latin1编码,容易乱码 CREATE DATABASE db1; # 指定utf8编码 CREATE DATABASE db1_1 CHARACTER SET utf8; # 切换数据库 USE db1_1; # 查询当前正在使用的数据库 SELECT DATABASE(); # 查询MYSQL中有哪些数据库 SHOW DATABASES; # 修改字符集 ALTER DATABASE db1 CHARACTER SET utf8; # 查询当前数据库的基本信息 SHOW CREATE DATABASE db1; # 删除数据库 DROP DATABASE db1_1; # 创建商品分类表 USE db1; CREATE TABLE category( cid INT, cname VARCHAR(20) ); # 创建测试表 CREATE TABLE test1( tid INT, tdate DATE ); # 创建一个表结构相同的表 CREATE TABLE test2 LIKE test1; # 查看表结构 DESC test2; # 查看当前数据库中的所有表 SHOW TABLES; # 查看创建表的SQL语句 SHOW CREATE TABLE category; # 查看表结构 DESC category; # 表的删除 DROP TABLE test1; # 先判断后删除方式 DROP TABLE IF EXISTS test2; # 修改表名称 RENAME TABLE category TO category1; # 修改字符集 ALTER TABLE category1 CHARACTER SET gbk; # 向表里添加字段 ALTER TABLE category1 ADD cdesc VARCHAR(20); # 修改表中列的类型或长度 ALTER TABLE category1 MODIFY cdesc CHAR(50); # 修改列的名称 关键字change ALTER TABLE category1 CHANGE cdesc description VARCHAR(30); # 删除列 ALTER TABLE category1 DROP description;
DML
# 插入全部字段,同时写出所有字段名 INSERT INTO student (sid, sname, age, sex, address) VALUES (1, 'sunwukong', 18, '男', '花果山'); # 插入全部字段 不写字段名 INSERT INTO student VALUES(2, 'sunwufan', 5, '男', '地球'); # 插入部分字段 # 插入date类型也要加引号。插入null的话可以写null,也可以不提那些字段 INSERT INTO student (sid, sname) VALUES (3, '蜘蛛精'); # 修改数据 # 几乎不这么玩 UPDATE student SET sex = '女'; # 一般都带条件,用where UPDATE student SET sex = '男' WHERE sid = 1; UPDATE student SET age = 20, address = '日本' WHERE sid = 2; # 删除数据 DELETE FROM student WHERE sid = 3; # 基本不用, 记录全删 DELETE FROM student; # 删除整张表再创建个一模一样的表,这样删除整张表的数据性能高 TRUNCATE TABLE student;