1.数据库介绍
- 数据库分类
- DDL**(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等;CREATE、 ALTER、DROP
- DML***(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据); INSERT、 UPDATE、 DELETE
- DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别;
- DQL*****(Data Query Language):数据查询语言,用来查询记录(数据)。
SELECT
- 常用的数据类型:
- int:整型
- double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99
- char:固定长度字符串类型,如果定义的长度为3,char(3),输入的值是'abcd',长度超过3,会报错
- varchar:可变长度字符串类型,定义varchar(10),值'abc'长度为3,系统会自动压缩长度,节省空间。但是varchar的性能没有char高
- text:字符串类型
- blob:字节类型,储存多媒体文件(图片、音频、视频)
- date:日期类型,格式为:yyyy-MM-dd
- time:时间类型,格式为:hh:mm:ss
- timestamp:时间戳类型,yyyy-MM-dd hh:mm:ss,会自动赋值
- datetime:日期时间类型yyyy-MM-dd hh:mm:ss
2.CMD操作MySQL
- 数据库基本操作:
- cmd启动MySQL服务:
net start mysql
- cmd停止MySQL服务:
net stop mysql
- cmd登陆MySQL:
mysql -u 用户名 -p
,如果要链接其他计算机的数据库,则需要用-h指定出计算机的IP地址:mysql -h IP地址 -u 用户名 -p
- cmd退出MySQL:
quit;
- cmd启动MySQL服务:
- 修改密码:
- 1.先停止MySQL服务
- 2.在cmd下输入
mysqld --skip-grant-tables
启动服务器,光标不动 (不要关闭该窗口) - 3.新打开一个cmd窗口,输入
mysql -u root -p
不需要密码,回车之后再按一次回车键 - 4.使用MySQL自带的数据库,在第一个cmd中输入use mysql;
- 5.然后再输入修改密码的SQL语句:
update user set password=password('abc') WHERE
User='root'; - 6.关闭两个cmd窗口,在任务管理器结束mysqld进程
- 7.在服务管理页面重启mysql服务,密码修改完成
3.DDL:操作数据库、表、列
- 操作数据库
- 查看当前账号下有哪些数据库:
show databases;
- 创建数据库:
create database 数据库名;
- 创建数据库时指定字符集:
create database 数据库名 character set GBK;
- 查看创建的数据的定义信息:
show create database 数据库名;
- 查看支持的字符集:
show character set;
- 删除数据库:
drop database 数据库名;
- 修改数据库字符集:
alter database 数据库名 character set GBK;
- 查看当前使用的数据库:
show database();
- 切换数据库:
use 数据库名;
- 查看当前账号下有哪些数据库:
- 操作数据表:
- 创建表:
create table 表名(字段1 字段类型,字段2 字段类型,字段n 字段类型);
- 查看数据库中的所有表:
SHOW TABLES;
- 查看表的字段:
DESC 表名;
- 在表中基本上增加一个列:
ALTER TABLE 表名 ADD 字段名 字段类型
- 修改job列,使其长度为60:
ALTER TABLE 表名 MODIFY job varchar(60);
- 删除image列,一次只能删一列:
ALTER TABLE employee DROP image;
- 修改表名:
RENAME TABLE 原表名 TO 新表名;
- 查看表格的创建细节:
SHOW CREATE TABLE 表名;
- 修改表的字符集为gbk:
ALTER TABLE user CHARACTER SET gbk;
- 修改列名:
ALTER TABLE user CHANGE 原列名 新列名 字段类型;
- 删除表:
DROP TABLE user;
- 创建表:
4.DML操作表数据
- insert
- update
- delete
- truncate删除表中的数据,清空表数据
- DELETE删除表中的数据,表结构还在;删除后的数据可以通过日志记录找回,一条一条的删除
- TRUNCATE删除是把表直接DROP掉,然后再创建一个同样的新表。删除的数据不能找回,执行速度比DELETE快