day15MySQL数据库操作

来源:互联网 发布:合肥编程培训班 编辑:程序博客网 时间:2024/06/06 00:02

数据库操作:

启动数据库:

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 [table] 表名;//直接将表删除摧毁,而且重新新建,自增长的主键回归到0。而用delete不会归0.[table]表示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);//非空

原创粉丝点击