1.DDL:数据库定义语言
database defination language 数据库定义语言,用于定义数据库,用于定义表结构
//创建第一个数据库
mydb1create database mydb1
//删除创建的数据库
drop database mydb1;
//选择数据库
user mydb1
// 查看数据库创建细节
show create database mydb1
// 创建一个使用gbk字符集的数据库
create database mydb2 character set gbk
创建MySQL数据表需要以下信息:表名、表字段名、定义每个表字段
//创建表
create table student(id int,name varchar(20),sex varchar(20),age int,salery float(6,2),birthday date)
//删除表
drop table student;
//查看所有表
show tables
//查看表的创建细节
show create table student;
//展示表结构
desc student
// 在原有的学生基础上添加address列
alter table student add address varchar(20)
//在原有的学生基础上删除address列
alter table student drop address
定义表的约束
如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。PRIMARY KEY关键字用于定义列为主键。为了标识数据库记录唯一性,不允许记录重复,且键值不能为空,主键也是一个特殊索引。 您可以使用多列来定义主键,列间以逗号分隔。UNIQUE KEY的用途:主要是用来防止数据插入的时候重复的ENGINE:设置存储引擎CHARSET: 设置编码
2.DML: 数据库操作语言
DML:data manipulation language 数据库操作语言,用以操作数据库。
//插入数据
insert into student values(1,’zhangsan’,’nan’,19,389.10,’1999-10-10’);
//查询
select * from student
问题:插入中文会报错
insert into student values(2,’李四’,’男’,19,389.10,’1999-10-10’);
解决:
//通知服务器客户端使用的编码是
gbkset character_set_client=gbk;
//通知服务器客户端查看结果集使用的编码是
gbkset character_set_results=gbk;insert into student(id,name,sex,age) values(3,’王五’,’男’,19);
删除数据:
//删除单条数据
delete from student where id=1;
//删除所有数据,不删除结构,会放到日志中,事务提交后才生效
delete from student;
//摧毁表,删除表中所有数据,不删除结构,立即生效
truncate table student;
注意:delete from student;与truncate table student;都能删除该表中所有数据,区别:前者删除后自增主键还在,后者主键会从1开始。
修改数据:
```sql
//设置所有人的年龄加10岁
update student set age=age+10
//修改zhangsan 为张三
update student set name=’张三’ where name=’zhangsan’
//修改王五的salery和出生日期
update student set salery=100.01,birthday=’1999-10-10’ where id=3;
3. DQL:数据库查询语言
Data Query Language 数据库查询语言
4. DCL:数据控制语言
Data Control Language用来定义数据库的访问权限和安全级别,及创建用户。