mysql基础知识(一)

mysql是主流的关系型数据库管理系统(RDBMS---relation database management system),操作是需要用SQL(Structured Query Language:结构化查询语言)语句的。现在写这个博客,是想把学习的基础知识,做个小结,适合小白基础学习者。

一、SQL语句的分类:

DDL(Data Definition Language):数据定义语言,主要是操作数据库和表达结构   命令主要有:create ,drop,truncate和alter,;

DML(Data Manipulation Language):数据操作语言,用于操作表格中的数据 ,命令主要有:insert ,update和delete;

DCL(Data Control Language):数据控制语言,用于设置用户的访问权限,安全等,命令包括:grant,deny,revoke等;

DQL(Data Query Language):数据查询语言,用于查询表格数据,命令主要有:select  from    where

1、DDL语言

1.1操作数据库

创建数据库:create database 数据库名字

删除数据库:drop database 数据库名字

修改数据库:alter database chracter set 字符集

查看数据库:show databases(用于查看所有的数据库);

查看数据库定义:show create database 数据库名字;

查看正在使用的数据库:select database();

选中数据库:use 数据库名字

1.2操作数据表

查看选中数据库中的所有表:show tables;

查看表的结构:desc 表名

查看表的定义结构/创建语句:show create table 表名

创建表:create table 表名(列名1  列的类型(长度)约束,列名2  列的类型(长度)约束);

(说明:列的约束主要有:主键约束:primary Key      唯一约束:unique    非空约束:not null   默认约束:default,外键约束:foreign key) 

主键和唯一:

1、区别:

①、一个表至多有一个主键,但可以有多个唯一
②、主键不允许为空,唯一可以为空

2、相同点
都具有唯一性
都支持组合键,但不推荐

 

外键:
1、用于限制两个表的关系,从表的字段值引用了主表的某字段值
2、外键列和主表的被引用列要求类型一致,意义一样,名称无要求
3、主表的被引用列要求是一个key(一般就是主键)
4、插入数据,先插入主表
删除数据,先删除从表
可以通过以下两种方式来删除主表的记录
方式一:级联删除
ALTER TABLE stuinfo ADD CONSTRAINT fk_stu_major FOREIGN KEY(majorid) REFERENCES major(id) ON DELETE CASCADE;

alter table 表名 add [constraint 约束名] foreign key(字段名) references 主表(被引用列)on delete cascade;

方式二:级联置空
ALTER TABLE stuinfo ADD CONSTRAINT fk_stu_major FOREIGN KEY(majorid) REFERENCES major(id) ON DELETE SET NULL;

alter table 表名 add [constraint 约束名] foreign key(字段名) references 主表(被引用列)on delete  set null;

注意:mysql不支持check约束

删除表:drop table 表名

修改表

添加列: alter table 表名 add 列名 列的类型 列的约束

修改列:alter table 表名 modify 列名 列的类型  列的约束

修改列名: alter table 表名 change 旧列名  新列名 列的类型 列的约束

删除列:alter table 表名 drop 列名

修改表的字符集:alter table 表名 character set 字符集

修改表名:rename table 旧表名 to新表名

修改表的储存引擎:alter table 表名  engine=引擎名(InnoDB,MyISAM,Archive,Blackhole,CSV等引擎)

2.DML语言

表中的增,删,改操作

2.1增加表格数据(插入数据)

插入数据 语句1:insert into 表名(列名1,列名2)values(值1,值2);

              语句2:insert  into 表名 values(值1,值2);

批量插入:insert into 表名 values(值1,值2),(值1,值2),(值1,值2);

2.2删除表格数据:

删除数据:delete from 表名[where 条件];

先删除表,再重建表:truncate table 表名(truncate虽然是DDL语句,但是也是只删除数据表数据,不删除数据表结构);

2.3更新数据:

update 表名 set 列名=值,列名=值[where 条件]

 

 

truncate、delete和drop的区别可以参考: drop、truncate和delete的区别   或者参考:MySQL删除表操作(delete、truncate、drop的区别)

博客园的总结:MySQL DELETE语句和TRUNCATE TABLE语句的区别

mysql中delete和truncate区别

结构化查询语言比较复杂,再开一篇文章总结。

详见:mysql基础知识(二)

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值