MYSQL

  • 一、MYSQL数据库
  • 1.常看当前数据库有哪些库
  • 2.查看数据库及表
  • 3.查看数据库(表)结构
  • 3.1表结构中各个属性的涵义:
  • 3.2.常用的数据类型:
  • 二、SQL语句
  • 1.定义:
  • 2.SQL分类
  • 3.创建数据库和表(DDL)
  • 4.删除表
  • 5.增(INSERT) 改(UPDATE)删除(DELETE)
  • 5.1 插入新数据(INSERT)
  • 5.2更新原有数据(UPDATE)
  • 5.3 删除数据(DETELE)
  • 6.查询(SELECT)
  • 6.1可以单字段或多字段查询
  • 单字段查询
  • 多字段查询
  • 6.2 精确查询(交叉到一个具体我需要的一个点)
  • 6.3 以列表方式竖向显示
  • 6.4 limit使用
  • 7.修改表结构
  • 7.1 修改表名和表结构
  • 7.2扩展表结构(增加字段)
  • 7.3 修改字段(列)名,添加唯一键
  • 7.4、删除字段
  • 8.拓展一些其他方法
  • 总结


一、MYSQL数据库

1.常看当前数据库有哪些库

show databases;  常看当前数据库有哪些库分号不能忘记

mysql表结构定义 mysql数据库表结构_mysql表结构定义

2.查看数据库及表

USE 数据库名    #使用 某某数据库
SHOW TABLES;    #查看此库中所有表

mysql表结构定义 mysql数据库表结构_mysql表结构定义_02

mysql表结构定义 mysql数据库表结构_mysql_03

这里进入别的数据库查看

mysql表结构定义 mysql数据库表结构_mysql_04

mysql表结构定义 mysql数据库表结构_mysql_05

3.查看数据库(表)结构

desc 数据库名.表名;      #查看此数据库中该表的结构(这里类似于绝对路径)

mysql表结构定义 mysql数据库表结构_数据库_06

desc 表名    #这里相当于相对路径,即当前数据库中寻找num表。

mysql表结构定义 mysql数据库表结构_表名_07


因此,我切换到new这个数据库中进行操作

mysql表结构定义 mysql数据库表结构_数据库_08

3.1表结构中各个属性的涵义:

  • Field :字段名。
  • Type:字段,数据类型。后面会讲
  • Null:是否可以空值,可以为空。
  • Key:字段属性,用于区分是否是主键。主键唯一,非空,用于标识不同实体。
  • Default:默认值,当空值时,自动填入值。

写default和不写的区别
写的话 当你在这个属性不指定一个内容时,默认使用默认值,因为主键非空,所以主键的默认没有。

3.2.常用的数据类型:

int: 整型,我们通常用的整数就是这个
float:单精度浮点4字节32位
double:双精度浮点8字节64位
char:固定长度的字符类型
varchar:可变长度的字符类型
text:文本
image:图片
decimal(5,2):5个有效长度数字,小数点后面有2位

#Char如果存入数据的实际长度比指定长度要小,会补空格至指定长度,
如果存入的数据的实际长度大于指定长度,低版本会被截取,高版本会报错

二、SQL语句

1.定义:

结构化查询语言(Structured Query Language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;
sql 语句就是对数据库进行操作的一种语言。这里主要讲解在mysql中使用的sql语句

2.SQL分类

  • DDL:数据定义语言(用于创建数据库对象,表,索引等)
  • DML:数据操纵语言(插入(意指新增或创建)、更新(修改)与删除(销毁)相关的操作)
  • DQL:数据查询语句(数据库查询语言)
  • DCL:数据控制语句(数据控制语言 。关键字:GRANT、REVOKE)

3.创建数据库和表(DDL)

CREATE DATABASE rain;   #创建rain数据库
USE rain;                #使用此库
CREATE TABLE num (id int NOT NULL,name char(10) NOT NULL,score float,passwd char(48) DEFAULT'', PRIMARY KEY (id));
DESC num;
#NOT NULL   不允许为空值
#DEFAULT''  默认值为空

一个表只能有一个主键

mysql表结构定义 mysql数据库表结构_表名_09

定义主键,也可以跟在每一个字段后也可以,如下图:

mysql表结构定义 mysql数据库表结构_数据库_10

4.删除表

use 数据库名        #打开具体的数据库
drop table 表名

mysql表结构定义 mysql数据库表结构_数据库_11


mysql表结构定义 mysql数据库表结构_数据库_12

DROP DATABASE 数据库名;

mysql表结构定义 mysql数据库表结构_字段_13

5.增(INSERT) 改(UPDATE)删除(DELETE)

5.1 插入新数据(INSERT)

INSERT INTO 表名(字段1,字段2[,...]) VALUES (字段1的值,字段2的值,...);

INSERT INTO num (id,name,score,passwd) values(1,'mingming',99.5,PASSWORD('123456'));
#PASSWORD('123456'):查询数据记录时,密码字串以加密形式显示:若不使用PASSWORD(),查询时以明文显示。标题  处解释

INSERT INTO num VALUES(2,'haohao',90.5,123456) ;
SELECT * FROM num ;      #查询表的数据记录

注意:这里使用隐藏密码输入时,一定需要注意passwd字段给的长度是否够密文的长度(这里指的是隐藏后的密文而不是123456。),否则会报错,本文后面有报错演示!

mysql表结构定义 mysql数据库表结构_mysql_14

5.2更新原有数据(UPDATE)

UPDATE 表名 SET 字段名1=字段值1,字段名2=字段值2 WHERE 条件表达式;

update num set id=5 where name='xiaxia';  把名为'xiaxia'的那行其中的id更新为5。

mysql表结构定义 mysql数据库表结构_数据库_15

update num set name='nihao',score=88.8 where id=1;  #同时改2个条件,注意两个之间需要有逗号。

mysql表结构定义 mysql数据库表结构_数据库_16

5.3 删除数据(DETELE)

delete from 表名 where 条件;
delete from num where id=5;    #把id=5的数据删除。

mysql表结构定义 mysql数据库表结构_数据库_17

6.查询(SELECT)

SELECT * FROM 表名 ;   #查询此表的所有数据。
实例:
SELECT * FROM num;
SELECT id,name,score FROM num WHERE id=2;
select name from num\G  		 #以列表方式竖向显示
select * from num limit 2;   	 #只显示头2行
select * from num limit 2,3;     #显示第2行后的前3行

mysql表结构定义 mysql数据库表结构_mysql_18

6.1可以单字段或多字段查询

SELECT id FROM 表名 ;
SELECT name,id FROM 表名 ;   #查询此表的name 和id字段

单字段查询

mysql表结构定义 mysql数据库表结构_mysql表结构定义_19

多字段查询

mysql表结构定义 mysql数据库表结构_字段_20

6.2 精确查询(交叉到一个具体我需要的一个点)

select 字段1,字段2...  from 表名 where 条件;

这里体现的是精确定位(行和列相交到一个点,精确)

mysql表结构定义 mysql数据库表结构_表名_21

6.3 以列表方式竖向显示

select name from num\G  		 #以列表方式竖向显示

mysql表结构定义 mysql数据库表结构_mysql表结构定义_22

6.4 limit使用

select * from num limit 2;   	 #只显示头2行
select * from num limit 2,3;     #显示第2行后的前3行

mysql表结构定义 mysql数据库表结构_mysql表结构定义_23

7.修改表结构

7.1 修改表名和表结构

ALTER TABLE 旧表名 RENAME 新表名;

mysql表结构定义 mysql数据库表结构_字段_24

mysql表结构定义 mysql数据库表结构_mysql_25

7.2扩展表结构(增加字段)

ALTER TABLE 表名 ADD level varchar(50) default '等级未知';
#default '等级未知':表示此字段设置默认值为等级未知,可与NOT NULL配合使用
ALTER TABLE numnew ADD level varchar(50) not null default '等级未知';

mysql表结构定义 mysql数据库表结构_mysql_26

mysql表结构定义 mysql数据库表结构_数据库_27


我们改过后,这里可以为空值,如果希望非空的话,需要在添加的时候加一个not null。

  • 添加一个not null。
ALTER TABLE numnew ADD level varchar(50) not null default '等级未知';
desc numnew;

mysql表结构定义 mysql数据库表结构_字段_28

7.3 修改字段(列)名,添加唯一键

ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [unique key];
alter table numnew change score ss float not null unique key;   #把score更改为ss字段,且不能为空的唯一键。

mysql表结构定义 mysql数据库表结构_表名_29

7.4、删除字段

ALTER TABLE 表名 DROP 字段名;

mysql表结构定义 mysql数据库表结构_mysql_30

8.拓展一些其他方法

use rain;
create table if not exists tt (
id int(6) zerofill primary key auto_increment,     #指定主键的第二种方式
name varchar(20) not null,
cardid int(20) not null unique key,
hobby varchar(60));
#if not exists:表示检测要创建的表是否已存在,如果不存在就继续创建
#int(4) zerofill:表示若数值不满4位数,则前面用"0"填充,例0001
#auto_increment:表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增;自增长字段数据不可以重复;自增长字段必须是主键;如添加的记录数据没有指定此字段的值且添加失败也会自动递增一次
#unique key:表示此字段唯一键约束,此字段数据不可以重复:一张表中只能有一个主键,但是一张表中可以有多个唯一键
#not null:表示此字段不允许为NULL

mysql表结构定义 mysql数据库表结构_mysql表结构定义_31

insert into tt values (1,'cm',10,'running'),(2,'mc',11,'swimming');

由于我表结构里设计的 id int(6) zerofill ,因此这里默认6位数,不够的部分在数字前面补0就好了。

mysql表结构定义 mysql数据库表结构_表名_32

总结

关于mysql简单操作就是sql语句的增删改查的应用来对现网环境下的数据的操作。