数据库(database/DB):指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合。
数据库管理系统(database management system/DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中的数据。
-
登录mysql
-
使用命令行登录 mysql -uroot -p123456
-
Navicat连接
-
-
退出
-
exit
-
DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等;
DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据-增删改);
DQL(*)(Data Query Language):数据查询语言,用来查询记录(数据)。
DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别;
注意: sql语句以;结尾(偶尔见到有\g结尾 , \G 也可以...)
查询数据库
show databases;
创建数据库
create database 库名;
修改
创建数据库时,默认字符集是utf8. 修改命令只能修改字符集,不能修改数据库名. alter database ....
删除数据库
drop database 库名;
操作表的前提是,得先进入某个数据库,才能操作数据库内部的表
选择/进入数据库
use 库名;
查询当前所在库
select database();
查询当前库下所有表
show tables;
创建表
create table 表名( 字段1 数据类型(长度), 字段2 数据类型(长度), ... );
常用数据类型
数据类型 | 解释 | 长度 |
---|---|---|
int | 整型 | 11,可以不写,默认11 |
varchar | 字符串 | 0-255 |
char | 字符串 | 0-255 |
double | 浮点型 | (5,2)总长5位,其中包含两位小数,999.99 |
date | 日期 | 没有长度 |
datetime | 日期时间 | 没有长度 |
timestamp | 时间戳 | 没有长度 |
数据库中,字符串不分单字符,所有字符串都是==单引号括==.使用char和varchar都可以代表字符串
varchar和char的区别
var是variable的缩写,就是可变化的字符串,例如varchar(10), 存入'张三'
char是定长,例如char(10),存入'张三 '
修改表名
rename table 旧名 to 新名;
修改列名
alter table 表名 change 旧名 新名 数据类型(长度)
查看表结构
desc 表名;
加一列
alter table 表名 add 新列名 数据类型(长度);
删列(就是定义的元素或者值)
alter table 表名 drop 列名;
删表
drop table 表名;
总结
创建--> create database/table
修改 --> alter database/table
删除--> drop database/table
查询 --> show databases/tables
DML
数据操作语言,针对表中数据进行操作,主要是对表数据进行增,删,改。
增加(insert)
/* 语法 insert into 表名(字段1,字段2,...) values (值1,值2,...); 其他用法: 1 当要插入全部列时,表名后的列名可以省略 此时要注意,值的顺序要与原表的顺序一致 2 可以指定部分列,插入数据 列和值的顺序,数量,数据类型要一一对应 3 字符串使用单引号 4 日期,暂时也是使用单引号括起 5 可以支持同时插入多条数据 values后用()分别写多条数据,用逗号隔开 */ -- 标准语法 insert into stu (id,name,age,sex,birthday) values (1,'张三丰',130,'男','1890-01-01'); -- 省略 insert into stu values(2,'张无忌',18,'男','1890-01-01') -- 插入部分数据 insert into stu (id,name) values (3,'赵敏'); insert into stu (id,name) values (4,6); -- 可以,因为mysql支持类型转换,单不建议 insert into stu (id,name) values ('5',6);-- 可以,因为mysql支持类型转换,单不建议 -- 日期类型,支持yyyy-MM-dd或yyyy/MM/dd insert into stu values(7,'武器大师',18,'男','1990/01/01') -- 插入多条数据 insert into stu values (8,'狗头',18,'公','1990/01/01'), (9,'雷克顿',19,'公','1991/01/01'), (10,'阿兹尔',20,'男','1981/01/01');
修改(update)
/* 语法: update 表名 set 字段1=值1[,字段2=值2,...] [where 字段 = 值]; */ -- 标准 update stu set age = 25,name = '曾阿牛' where id = 2; -- where条件虽说可加可不加.但是不加的话将影响全部数据. -- 所以,强烈建议!!!以后更新必须加条件。
删除(delete)
/* 语法: delete from 表名 [where 字段 = 值]; 从表中删除数据,强烈建议加条件,否则会删除全部数据!!!! 公司实际开发,一般不会真的删除数据, 会在表中设计[状态]字段,删除其实是在执行update,更新状态而已. */ delete from stu where id = 10;