您的位置:首页 > 数据库 > MySQL

day15MySQL数据库操作

2017-10-26 09:17 127 查看

数据库操作:

启动数据库:

net start mysql;


关闭数据库:

net stop mysql;


设置自启动:

打开服务管理器:
services.msc


命令行登陆数据库:

mysql -uroot -pitcast;//root是用户名(超级用户) -p后面是密码
mysql -uroot -p;
Enter password:(这里输入密码)


可视化工具:

专门针对MySQL数据库的可视化工具:SQLYog,有中文版。


SQL语句:

分类:

[ ] ​ DDL:数据定义(define)语言,用来定义数据库对象(库,表,列),关键字有 create、alter、drop

[ ] ​DML:数据操作语言,对数据库中表记录进行更新,关键字insert、delete、update

[ ] ​DCL:数据控制(control)语言,定义数据库的访问权限和安全级别,用户权限

[ ] ​DQL:数据查询(query)语言,关键字:select from where

数据类型:

[ ] ​ int 整数;

[ ] ​double 浮点;

[ ] ​varchar 可变字符;

[ ] ​date 日期

创建与查询:

创建数据库:

Create database 数据库名称;//数据库名称是唯一的
create database 数据库名称 character set UTF-8 ;//指定字符集创建数据库


查看数据库:

show databases;//查看所有已经存在的数据库


查看创建的数据库:

show create database 数据库名称//查看创建的数据库名称,指定一个。


删除数据库:

drop database 数据库名字;


数据表的操作:

先执行使用某个数据库:

use 数据库名;//要求数据库已经创建好。使用该数据库。


创建:

create table 表名(
字段1 数据类型[约束条件],
字段2 数据类型[约束条件],
...
primary key (字段1,字段2),//在字段后定义主键约束,这是一次性设置约束的方式
)


​ //注意:字段和数据类型之间是空格,可变字符数据类型后面需要指定长度,例如 name varchar(20), 是一个完成字段,字段之间用逗号分隔,最后一个字段后没有逗号。

​ 字段值自动增加:

字段名 数据类型 primary key auto_increment;//创建数据表时,设置表中某字段的值为主键,自动增加
//如果主键列是Varchar ,就不可以设置自动增长。


单表约束:

限制该列可以存的数据,

[ ] ​ 主键:primary key 特点是非空 唯一,一般不具备任何含义。

[ ] ​ 非空:not null

- [ ] ​ 唯一:unique

​格式如下:

- [ ] ​ 字段名 数据类型 primary key,//创建数据表时,在字段名后面加上主键标识。
- [ ] ​primary key (字段1,字段2,...)//单起一行,设置多字段为主键
- [ ] ​字段名 数据类型 not null;//创建数据表时,在字段后面设置非空
- [ ] ​字段名 数据类型 unique;//设置字段的唯一性,表中字段不能重复
- [ ] ​字段名 数据类型 default 默认值;//设置字段的默认值为指定值


注释:

单行注释
--注释内容
多行注释
/*
注释内容
*/


增删改查

查看:

​ show create table 表名;//查看指定的表信息。

​ describe 表名;//简写desc 表名;//查看显示表的所有字段信息。

修改:

​ alter table 旧表名 rename [to] 新表名;//修改表名为指定表名。

​ alter table 表名 change 旧字段名 新字段名 新数据类型;//修改指定表中的某字段名。

​ alter table 表名 modify 字段名 数据类型;//修改字段的数据类型。

​ alter table 表名 add 新字段名 数据类型[约束条件] [FIRST] [AFTER 已存在字段名]//添加字段

​ alter talbe 表名 drop 字段名;//删除字段

​ alter table 表名 modify 字段名 数据类型 first|after 旧字段名;//修改字段位置

删除:

​ 主要值删除相互之间没有关联的数据表

​ drop table 表名;//删除某一数据表

数据的操作:

[ ] 增加:

[ ] 删除:

[ ] 修改:

[ ] 查询:

添加数据:

​ *insert into 表名 (列名1,列名2,…) values (值1,值2,…);//注意名称问题,值和列名需要一一对应,列名的顺序可以不与表中列相同。

​ //各个字段用逗号隔开,Values拼写注意。

​ //注意如果有主键,添加的数据不能为空,不能与表中已有的主键重复。

​ //除了数字类型,值都要用单引号括起来

​ //设置了自动增长的列,设置值为NULL时,默认也会自动增长。

添加数据:(不考虑主键)

​ *insert into 表名 (列名1,列名2…) values (值1,值2,…);

​ //列名集中不包含主键。

​ *insert into 表名 values (全列值);//如果省略列名集合,值集合中必须包含主键(如果自增,可以设置为NULL),给的值与表中的列一一对应。

添加数据批量写入:

​ *insert into 表名 (列名1,列名2…) values (值1,值2,…),(值1,值2,…),…;

修改(更新):

​ update 表名 set 列1=值1,列2=值2 where 条件;//修改指定条件的各列值。如果不指定条件,会修改整列所有数据。

​ //条件一般是数据中的唯一性。例如 id = 3

​ 条件表达式:

​ 与 应该用and 不能用&

​ 或 应该用or 不能用|

​ 非 应该用not 不能用!

​ 不等于需要用 <>

​ in (值1,值2,…) 表示值集是否包含了给定列。如 where id in (1,3,…)表示可以为1 或2 或 其他。

​ not in (值1,…)表示不包含。

删除:

​ delete from 表名 where 条件;//需要指定条件删除哪一行,否则会清空表

​ truncate 表名;//直接将表删除摧毁,而且重新新建,自增长的主键回归到0。而用delete不会归0.
表示table可以不写

事务:

​ start transaction;//开启事务,当用delete删除数据后,可以通过 rollback;回滚到事务位置。如果用truncate则无法回滚。

查询:(基本)

​ 指定列的数据:

​ select 列名1,列名2,… from 表名;//查询该表中指定列的所有信息

​ 所有列数据:

​ select * from 表名;//查询该表下所有列的所有信息。

​ 去掉重复记录:

​ select distinct 列名 from 表名;//查询去重后记录,关键字distinct(不同的意思)后跟字段名。

​ 查询重新命名列

​ select 列名 as 新列名 from 表名;//查询指定列名,临时改成新列名。as可以省略。

​ 查询直接运算:

​ select 列名+num as 新列名 from 表名;//查询并对数字运算,返回运算后结果。也是临时的,实际数据库中未改。列名只能是数字类型可运算的。

查询:(条件)

比较运算符:

​ < <= >= = <>

​ between 值1 and 值2 在两个值范围之间,

​ in (值1,值2,…) 在值的结果集中,只需要时其中一个

​ not in (值的结果集) 不在结果集中。

​ select 列名 from 表名 where 条件(某列名=…);//条件对结果集进行筛选。

模糊查询:

​ 通用:select 列名 from 表名 where 条件;

​ 条件写法:

​ 列名 like ‘%子名%’;//查询名字包含子名的所有数据信息,%表示通配符。

​ 列名 like ‘_‘;//查询名字值只有若干字符的所有数据,一个下划线表示一个字符

​ 列名 not null;//查询指定列名非空的所有数据。

​ 列名 is null //条件是空。

​ not (列名 is null);//非空
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: