首页 > 代码库 > 我的学习之路_第十八章_SQL语句

我的学习之路_第十八章_SQL语句


SQL语句
启动数据库: net start mysql 关闭数据库: net stop mysql

登录数据库 : cmd-->命令行-->mysql-->mysql -u账号 -p密码

【创建和删除数据库】

使用关键字 : create(创建) database(数据库)

格式: create database 数据库名;

create database 数据库名 character set 字符集;

●--查看mysql中所有的数据库

show database;

●--查看某个数据库的定义的信息

show create database 数据库名;

●--切换数据库

use 数据库名;

●--查看正在使用的数据库

select database();

●--删除数据库

drop database 数据库名;


【创建表的SQL语句】

创建数据库表,使用关键字 create(创建) table(表)
[] : 数据库中是可选的意思,可以有,可以没有

格式:
create table 表名(
字段名 数据类型[长度] [约束],
字段名 数据类型[长度] [约束],
...
字段名 数据类型[长度] [约束](最后一个不能有逗号)
);

主键约束: primary key 字段不能为null,不能重复

 

●--查看当前数据库中所有的表

show table;

●--查看表结构

desc 表名 ;

●--删除表

drop table 表名 ;

【修改表结构格式】

关键字 : alter(修改) modify(更改) change(改变)

●--修改表添加列

alter table 表名 add 列名 类型[长度] [约束];

●--修改表修改列的类型长度及约束

alter table 表名 modify 列名 类型[长度] [约束];

注意:如果有数据,必须注意数据类型 varchar --> int 容易有错误数据

●--修改列名以及数据类型和约束

alter table 表名 change 原列名 新列名 类型[长度] [约束];

●--删除列

alter table 表名 drop 列名;

注意:如果列中有数据,数据就会一起删除了,需谨慎

●--修改表名

rename table 表名 to 新表名;

●--修改表的字符集

alter table 表名 character set 字符集;

注意:不建议执行,有可能会产生乱码

【插入表数据】

使用关键字 : insert(插入) [into]

格式:
包含主键:insert into 表名(字段1,字段2...) values(值1,值2...);
主键自增,省略主键: insert into 表名(不包含主键) values (不包含主键);

注意事项:
1.字段和值一定要一一对应(个数,数据类型)
2.除了数值类型(int ,double)其他的数据类型都需要使用引号包裹起来
可以使用双引号,也可以使用单引号,推荐使用单引号

●--包含主键

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

●--创建表,主键自增 auto_increment(主键自己添加,自己增长)

create table 表名(

字段 数据类型[长度] primary key auto_increment,
字段 数据类型[长度][约束],
...
);

●--主键自增,省略主键:

insert into 表名(不包含主键) values (不包含主键);

●--批量插入数据

格式:
包含主键: insert into 表名(字段1,字段2...) values (值1,值2...)
主键自增,省略主键: insert into 表名 (不包含主键) values (不包含主键),(值1,值2...)

●--省略字段名格式:必须给出全部字段的值(包含主键)

格式:
insert into 表名 values(全部字段的值);
insert into 表名 values(全部字段的值),(全部字段的值)...

●--记不住主键,可以使用null,sql会自动计算主键

insert into 表名 values(null,字段);

【更新表数据】

使用关键字: update(更新) set(设置)
格式:
不带条件过滤,一次修改列中所有的数据(慎用)

update 表名 set 字段名=字段值,字段名=字段值...

带条件过滤,使用关键字 where

update 表名 set 字段名=字段值.字段名=字段值...where 过滤的条件

【删除表数据】

使用关键字 : delete(删除) from(来自)

格式:
delete from 表名 [where 过滤条件]

delete from 表名 : 删除标作用的所有数据,但是不会删除主键自增

truncate table 表名 : 删除表中的所有数据,会删除主键自增,让主键自增重置,从1开始

【主键约束】

使用关键字 : primary 可以
作用:
约束主键列不能为null
不能重复
每一个表必须有一个主键,且只能有一个主键
主键不能使用业务数据

●--添加主键的第一种方式,在列名之后直接添加(创建表的时候直接添加)

●--添加主键的第二种方式,使用constraint区域

[constraint 名称] primary key (字段列表);

如果不给出主键的名字,可以省略关键字 constraint

●--添加主键的第三种方式,创建表之后,通过修改表结构,添加主键

alter table 表名 add [constraint 名称] primary key (字段列表);

●--删除主键

alter table 表名 drop primary key ;

●--联合主键 : 使用2个以上的字段为主键

create table 表名(
字段 数据类型[长度],
字段 数据类型[长度],
...
primary key(字段, 字段)
);

【非空约束】

使用关键字 : not null

作用:强制约束某一列不能为null(不接受null值)

●--创建非空约束第一种格式,创建表时,在字段后面直接给出

字段 数据类型[长度] not null ;

●--创建非空约束第二种格式,修改表结构

alter table 表名 modify 列名 数据类型[长度] [约束];

●--删除非空约束

alter table 表名 modify 列名 数据类型[长度];

【唯一约束】

使用关键子: unique

作用:添加了唯一约束的字段,不能重复

●--创建唯一约束的第一种格式,创建表时,在字段后直接给出

字段 数据类型[长度] unique ;

●--创建唯一约束的第二种格式,创建表时使用 [constraint 名称] unique (字段列表)

create table 表名(

字段1 数据类型[长度],
字段2 数据类型[长度],
...
constraint unique(字段2)

);

●--创建唯一约束的第三种格式,创建表之后,修改表数据

alter table 表名 modify 列名 类型[长度] unique ;

●--删除唯一约束

alter table 表名 drop index 名称
定义约束的时候,如果没有创建名称,则名称为字符串(字段),如果创建了名称,就写创建时的名称

【默认约束】

给字段添加一个默认值,如果字段没有插入值,则使用默认值

使用关键字: default 值

●--创建默认约束方式一,创建表,列数据类型后面 default ‘默认值‘

●--创建默认约束方式二,修改表结构

alter table 表名 modify 列名 数据类型[长度] default ‘默认值‘ ;

●--删除默认约束

alter table 表名 modify 列名 数据类型[长度] ;

我的学习之路_第十八章_SQL语句