MySQL简单使用

MySQL简单使用

一、操作数据库(database)

1、增

create database 数据库名称 charset utf8;

命名规范:

1. 可以由字母、数字、下划线、@、#、$
2. 区分大小写
3. 唯一性
4. 不能使用关键字如 create select
5. 不能单独使用数字
6. 最长128位

show create database 数据库名;

2、删

drop database 数据库名称;

3、改

删除再添加

如果数据库中有数据的话,直接drop会导致数据库中的数据丢失;

在线上环境,不能够直接删除数据, 在删除之前,需要进行备份。

4、查

show databases;

5、打开数据库

use 数据库名;

二、 操作表

1、增

1.1 语法

create table +表名(
    字段名  列类型(宽度)  约束条件,#字段与字段间要加逗号
    ...
    字段名  列类型(宽度)   约束条件	#最后一行不要加逗号
)charset=utf8;	#后面要加分号

1.2 列约束(完整性约束)

  1. primary key:标识该字段为该表的主键,主键可以加快索引速度,并使列的值不能重复;
  2. auto_increment:整数自增,设置了这条约束的字段必须为主键;
  3. not null:标识该字段不能为空;
  4. default:为该字段设置默认值

1.3 列类型(数据类型)

1.3.1 数字

整形:

tinyint:1字节,(-128,127)/(0,255)

smallint:2字节,(-32768,32767)/(0,65536)

mediumint:3字节,(-8388608,8388607)/(0,16777215)

int:4字节,(-2147483648,2147483647)/(0,4294967295)

bigint:8字节,(-9233372036854775808,9233372036854775807)/(0,18446744073709551615)

浮点型:

float:在位数比较短的情况下不精准

double:在位数比较长的情况下不精准

decimal:精准,内部原理是以字符串形式去存(如果用小数,则用推荐使用decimal)

1.3.2 字符串

char:定长,就算储存的字符串没有达到长度也会用空格来补充。浪费空间,存取速度快;

varchar:变长,固定长度后,如果储存的数据长度不够,会以存取数据的长度为准。精准,节省空间,但存取速度慢。

1.3.3 时间日期类型

year:YYYY(1901/2155)

date:YYYY-MM-DD(1000-01-01/9999-12-31)

time:HH:MM:SS('-838:59:59'/'838:59:59')

datetime:YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59)

timestamp:YYYYMMDD HHMMSS(1970-01-01 00:00:00/2037 年某时)

1.3.4 枚举(自己设定范围)

enum('male','female')

2、删

drop table 表名;

3、改

3.1 修改表名

alter table 旧表名 rename 新表名;

3.2 增加字段

  1. 添加的列永远是添加在最后一列之后

    alter table 表名 add 字段名 列类型(宽度) 约束条件,

    ​ add 字段名 列类型(宽度) 约束条件;

  2. 添加的列在第一列

    alter table 表名 add 字段名 列类型(宽度) 约束条件 first;

  3. 添加的列在某个特定列的后面

    alter table 表名 add 字段名 列类型(宽度) 约束条件 after 字段名;

3.3 删除字段

alter table 表名 drop 字段名;

3.4 修改字段

  1. 修改某个已存在字段的列类型和约束条件

    alter table 表名 modify 字段名 新列类型(宽度) 新约束条件;

  2. 修改某个字段的字段名

    alter table 表名 change 旧字段名 新字段名 新列类型(宽度) 新约束条件;

4、查

  1. 展示所有表

    show tables

  2. 展现某个表的字段属性

    describe 表名;

  3. 展现某个表的具体内容

    select * from 表名;

5、复制表结构

  1. 创建一个和某个已有表结构相同的表,只能复制结构,不能复制数据

    create table 表2名 like 表1名;

三、 操作表记录(每行)

1、增

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

2、删

  1. 删除符合某个条件的一条记录

    delete from 表名 where 条件;

  2. 删除表中已有数据,但继续写入数据是从删掉的最后一个主键的接下来开始写入的

    delete from 表名;

  3. 清空表内容,继续写入是从头开始写的

    truncate 表名;

delete删除是一行一行删,truncate是一次性全部删,所以truncate删除速度更快。

3、改

update 表名 set 列名1=新值1,列名2=新值2 where 条件;

4、查

select 列1,列2 from 表名 where 条件;(*代表查询所有的列)

条件中:

  1. between……and……:

    取值范围是闭区间

  2. 避免重复distinct:

    select distinct 列名 from 表名;(显示这列不重复的值)

  3. 成员运算in:

    select * from 表名 where 列名 in(值1,值2,值3……);

  4. 模糊查询like:

    select * from 表名 where 列名 like ‘x%’;(查找以x开头的值)

四、补充null和not null

1、使用null

创建表的时候 没有 在字段的约束中 声明该字段是not null的,这会使添加字段时,如果该条记录的这个字段为空,则会默认显示为NULL,这会导致后续查表时产生一些bug或者一些麻烦的事情,所以尽量声明一下字段时not null 的,然后设置一个默认值。

2、使用not null

一种约束条件,声明一个字段不能为null,然后可以给他设定一个默认值。

posted @ 2019-10-29 20:34  Donner  阅读(160)  评论(0编辑  收藏  举报