<返回更多

mysql入门级,20分钟搞定

2019-12-23    
加入收藏

--sql语言的四大分类

--数据定义语言(DDL)

create alter drop

--数据查询语言(DQL)

select

--数据操作语言(DML)

insert update delete

--数据控制语言(DCL)

revoke grant

--数据库的相关操作

--创建数据库

create database 数据库名称;

--查询指定的数据库

show create database mydb;

--查询所有数据库

show databases;

--数据库名称的相关规则:

1、数据库名称不能相同(唯一)

2、数据库名称不能超过65个字符,数据库名称的别名不能超过255个字符。

3、数据库名称由阿拉伯数字、字母、下划线(_)美元符号($)组成,但是不能以数字开头。

4、数据库在windows中不区分大小写,但是在linux中区分大小写。所以推荐全部小写(方便后期移植到linux中)。

--删除数据库

drop database 数据库名称;

drop database if exists mydb; --判断数据库是否存在,如果存在就删除,不存在就算了。

--修改数据库的编码集

alter database 数据库名称 default character set 编码集; -- 了解

例如:

alter database gxa default character set gb2312;

--指定使用具体的数据库

use 数据库名称;

--数据表的相关操作

--创建数据表

create table 表名(表字段1 表字段的类型1(字段的大小),表字段2 表字段的类型2(字段的大小));

create table t_user(uId int(3),uName varchar(10));

--查询当前数据库中有那些表

show tables;

--查询指定表创建的信息

show create table t_user;

--查询表结构

desc t_user;

describe t_user;

--删除表

drop table 表名;

--字段类型

--整型

tinyint 极小整型

smallint 小整型

mediumint 中整型

int 整型 -- 最常用

bigint 大整型

--浮点型

float 单精度浮点型

double 双精度浮点型

-- 金钱常用、对精度要求比较高的 100.25 -- 最常用

decimal(M,D) 总共有M位,保留小数点D位 -- 最常用

--字符串型

char(3) 固定长度字符型

varchar(3) 可变长度字符型 -- 最常用

--日期时间型

date 日期 yyyy-MM-dd -- 最常用的

datetime 日期时间型 yyyy-MM-dd hh:mm:ss 2019-07-01 15:34:34

timestamp (支持国际化)日期时间型 yyyy-MM-dd hh:mm:ss 2019-07-01 23:34:34 --最常用

--文本型

text 文本类型

blob 它支持存储视频、音频等二进制的数据 -- 很少用

--特殊类型 -- 了解

set 存储多列数据 set('篮球','足球')

enum 存储单列数据 enum('男','女')

--创建学生表

create table t_student(

stuNo int(10) primary key auto_increment,

stuName varchar(20) not null,

stuSex char(2) default '男',

stuIdCard varchar(18) unique not null,

stuLifeMoney double(10,2),

stuStartDay date,

stuUrl text,

stuHobby varchar(50)

);

--字段约束

--主键约束 -- 主键默认不能为null,而且唯一。一张表一个主键

primary key

--自动增涨 -- 一般配合主键使用,默认从1开始

auto_increment

--唯一约束 -- 可以设置值为null,也可以一个表中多列设置唯一约束

unique

--非空约束

not null

--唯一非空约束

unique not null

--默认约束

default

--外键约束

foreign key

学生班级表sql代码示例

create table t_student(

stuNo int(10) primary key auto_increment,

stuName varchar(20) not null,

stuSex char(2) default '男',

stuIdCard varchar(18) unique not null,

stuLifeMoney double(10,2),

stuStartDay date,

stuUrl text,

stuHobby varchar(50),

classId int(10),

constraint for_class foreign key (classId) references t_class(classId)

);

create table t_class(

classId int(10) primary key auto_increment,

className varchar(20)

);

--删除外键

alter table t_student drop foreign key for_class;

--MySQL命令窗口编码格式和mysql数据库中不一致,修改一下编码方法-------了解

--查看当前数据库的编码格式

show variables like '%char%';

set character_set_client=gb2312;

set character_set_server=gb2312;

--针对表字段操作

--添加一个字段

alter table t_user add money decimal(5,2);

--修改字段

alter table t_user change money price decimal(7,2);

--删除字段

alter table t_user drop price;

--插入数据 insert

--语法

insert into 表名(字段名1,字段名2......) values(字段1的值,字段2的值);

insert into t_class(classId,className) values(1,'XXX部');

注意:into后的表不指定任何字段,那么values中就必须填写所有字段的值并且按照顺序来

insert into t_class(classId,className) values(5,'xxx01班'),(6,'xxx02班'),(7,'xxx03班');

-- 实际开发中不常用

--修改数据 update

update 表名 set 字段名=更新的值 where 条件

例子:

update t_class set className = 'xxx班' where classId = 5;

update t_class set classId=10,className = 'xxxxxx班' where classId = 7;

update t_class set classMoney=classMoney+100 --修改全部

--将xxx01班的班费+100

update t_class set classMoney=classMoney+100 where className = 'xxx01班';

--删除数据 delete

delete from 表名 where 条件

例子:

delete from t_class where classId = 200;

delete from t_class --删除全部数据

--备份表

create table newt_class select * from t_class; --结构和数据都有

create table newt_class select * from t_class where 1 = 2; --只有结构,没有数据。

--从另一个表中恢复数据

insert into t_class select * from newt_class;

--truncate清空数据

truncate table t_class;

--delete 与 truncate 的区别

1、执行效率truncate比delete更高

2、delete可以添加where条件,但是truncate不行。

3、当表中出现自动增涨auto_increment的字段时,delete删除所有数据后,再添加数据。自动增涨的值=最后一次+1,但是truncate就从新开始。

4、delete它有日志记录,truncate没有。所以delete删除的数据可以恢复,truncate不能。

5、delete它支持事务处理,truncate不支持事务处理。

mysql中默认事务是自动提交的autocommit = 1

set autocommit = 0; --设置手动提交

commit; --提交

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>