mysql

Posted test-365

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql相关的知识,希望对你有一定的参考价值。

1章: 数据库和表;1

2章: select语句;1

3章: updatedelete1

4章: 规范化;1

5章: later1

6章: select进阶;1

7章: 多张表数据库设计;1

8章: 链接与多张表的操作;1

9章: 子查询;1

10章: 外链接、自连接与联合;1

11章: 约束、视图与事务;1

12章: 安全性1

 

1 数据库和表

    保存东西的地方;

什么是数据库? 

  数据库是保存表和其他相关的SQL结构的容器;

表 : 数据库内的信息组成了表;

表在数据库中包含数据的结构,有行和列组成;

行 包含了表中某个对象的所有信息;

列 是存储在表中的一块数据,行是能够描述某个事物的集合。行和列构成了表;

字段夜场用来代称列,记录通常代表行;

mysql 数据类型

在 MySQL 中,有三种主要的类型:Text(文本)、Number(数字)和 Date/Time(日期/时间)类型。

Text 类型:

数据类型描述
CHAR(size) 保存固定长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的长度。最多 255 个字符。
VARCHAR(size) 保存可变长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的最大长度。最多 255 个字符。注释:如果值的长度大于 255,则被转换为 TEXT 类型。
TINYTEXT 存放最大长度为 255 个字符的字符串。
TEXT 存放最大长度为 65,535 个字符的字符串。
BLOB 用于 BLOBs(Binary Large OBjects)。存放最多 65,535 字节的数据。
MEDIUMTEXT 存放最大长度为 16,777,215 个字符的字符串。
MEDIUMBLOB 用于 BLOBs(Binary Large OBjects)。存放最多 16,777,215 字节的数据。
LONGTEXT 存放最大长度为 4,294,967,295 个字符的字符串。
LONGBLOB 用于 BLOBs (Binary Large OBjects)。存放最多 4,294,967,295 字节的数据。
ENUM(x,y,z,etc.) 允许您输入可能值的列表。可以在 ENUM 列表中列出最大 65535 个值。如果列表中不存在插入的值,则插入空值。

注释:这些值是按照您输入的顺序排序的。

可以按照此格式输入可能的值: ENUM(‘X‘,‘Y‘,‘Z‘)

SET 与 ENUM 类似,不同的是,SET 最多只能包含 64 个列表项且 SET 可存储一个以上的选择。

Number 类型:

数据类型描述
TINYINT(size) -128 到 127 常规。0 到 255 无符号*。在括号中规定最大位数。
SMALLINT(size) -32768 到 32767 常规。0 到 65535 无符号*。在括号中规定最大位数。
MEDIUMINT(size) -8388608 到 8388607 普通。0 to 16777215 无符号*。在括号中规定最大位数。
INT(size) -2147483648 到 2147483647 常规。0 到 4294967295 无符号*。在括号中规定最大位数。
BIGINT(size) -9223372036854775808 到 9223372036854775807 常规。0 到 18446744073709551615 无符号*。在括号中规定最大位数。
FLOAT(size,d) 带有浮动小数点的小数字。在 size 参数中规定最大位数。在 d 参数中规定小数点右侧的最大位数。
DOUBLE(size,d) 带有浮动小数点的大数字。在 size 参数中规定最大位数。在 d 参数中规定小数点右侧的最大位数。
DECIMAL(size,d) 作为字符串存储的 DOUBLE 类型,允许固定的小数点。在 size 参数中规定最大位数。在 d 参数中规定小数点右侧的最大位数。

*这些整数类型拥有额外的选项 UNSIGNED。通常,整数可以是负数或正数。如果添加 UNSIGNED 属性,那么范围将从 0 开始,而不是某个负数。

Date 类型:

数据类型描述
DATE() 日期。格式:YYYY-MM-DD

注释:支持的范围是从 ‘1000-01-01‘ 到 ‘9999-12-31‘

DATETIME() *日期和时间的组合。格式:YYYY-MM-DD HH:MM:SS

注释:支持的范围是从 ‘1000-01-01 00:00:00‘ 到 ‘9999-12-31 23:59:59‘

TIMESTAMP() *时间戳。TIMESTAMP 值使用 Unix 纪元(‘1970-01-01 00:00:00‘ UTC) 至今的秒数来存储。格式:YYYY-MM-DD HH:MM:SS

注释:支持的范围是从 ‘1970-01-01 00:00:01‘ UTC 到 ‘2038-01-09 03:14:07‘ UTC

TIME() 时间。格式:HH:MM:SS

注释:支持的范围是从 ‘-838:59:59‘ 到 ‘838:59:59‘

YEAR() 2 位或 4 位格式的年。

注释:4 位格式所允许的值:1901 到 2155。2 位格式所允许的值:70 到 69,表示从 1970 到 2069。

*即便 DATETIME 和 TIMESTAMP 返回相同的格式,它们的工作方式很不同。在 INSERT 或 UPDATE 查询中,TIMESTAMP 自动把自身设置为当前的日期和时间。TIMESTAMP 也接受不同的格式,比如 YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD 或 YYMMDD。

 

查看创建的表  DESC 表名;

删除表 DROP TABLE 表名; drop table 会删除你表和表里的所有数据;

增加表数据  insert;

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

 

三种insert 插入形式;

1改变列顺序;我们可以改变列名称的顺序,只要记得数据值的顺序也要一起调整。

举例: insert into my_contacts (interests,first_name,last_name,gender,email,birthday,profession,location,status,seeking)

values ( ‘kayaking‘,‘Jillina‘,‘Anderson‘,‘F‘,,dshfoissdfs.com‘,‘1980-09-09‘,‘’Tesdhal WRff‘’, ‘aaa’,‘sdafd’,‘sdfss’ )

注意:列明和数据值相互对应。

 

2省略列名;

列名列表可以省略,但数据值必须全部填入,而且必须与当初创建表时的列顺序完全相同

举例: insert into my_contacts 

values ( ‘kayaking‘,‘Jillina‘,‘Anderson‘,‘F‘,,dshfoissdfs.com‘,‘1980-09-09‘,‘’Tesdhal WRff‘’, ‘aaaa’,‘dasfasd’,‘sdfa’ );

注意:列名 列表可以省略,但数据值必须全部填入,而且必须与当初创建表时的列顺序完全相同;

省略了所有列名,但这么做是一定要填入所有数据值,而且要和表中的列顺序完全相同;

 

3省略部分列;

可以值填入一部分列值;

 insert into my_contacts (interests,first_name,last_name,gender,email,birthday)

values ( ‘kayaking‘,‘Jillina‘,‘Anderson‘,‘F‘,,dshfoissdfs.com‘,‘1980-09-09‘ );

这一次 只输入部分数据,但要明确指出数据值对应的列名;

 

 

select 语句

select * from表名;       not null  非空;

create table 表名 (

last_name varchar (30) not null,

first_name varchar (30) not null

);

 

default  填补空白; 某些列通常有某个特定值,我们就可以吧特定的值指派为default 默认值;

跟在default 关键之后的值,会在每次新增记录时自动插入表中,只要没有另外指派其他值;默认值的类型必须和列的类型相同;

 

select * from 表名 where first_name =‘Anne’;

where 字句中,‘=’ 用来检查 first_name 列中的每个值,是否等于文本‘Anne’ 符合即返回整行,不符合则不返回改行。

 

insert 包含单引号的数据, 用反斜线处理引导   在字符串中的单引号前加上反斜线就可以实现(同事还能修复 insert语句); :

insert into表名 values (‘sdfklj‘,‘sdfsa‘,‘Drover‘s‘,‘dsfasf‘,,,,,);

 

另一种单引号 处理引导  转义 的方式是在它前面加一个单引号  : ‘

insert into表名 values (‘sdfklj‘,‘sdfsa‘,‘Drover‘’‘s‘,‘dsfasf‘,,,,,);

 

selelct 列名1,列名2,,,, from表名   where 条件;

 

结合查询

  select location from  doughnut where type =‘plain glazed‘

and rating =10;

 

select 列名 from表名 where   main=‘soda’ and amount >1;

 

like  select  * from 表名  where location like  ‘%ca’;   

% 匹配所有以ca 结尾的值;

 select 列名 from 表名 where first_name like ‘_im’;   例如 tim  mim  kim  ;

_  下划线只是一个位置字符的替身;

 

select drank_name from info where   calories >=20  and calories <=60;

 

select drank_name from info where   between  20  and 60;

 

select date_name from black_book where rating in (‘sdfsa‘,‘fdfff‘,‘were‘,‘cvxv‘);

 

select date_name from black_book where rating not  in (‘sdfsa‘,‘were‘,‘cvxv‘);

 

select drink_name from drink_info where not carbs between 3 and  5;  

select date_name from black_book  where not date_name like ‘A%‘ and not date_name like ‘B%‘;

 

以上是关于mysql的主要内容,如果未能解决你的问题,请参考以下文章

MySQLMySQL 一些 使用 案例

MySQL的常用操作更改root密码连接MySQLMySQL常用的命令

MySQLMysql必会语句

MySQLMysql必会语句

MySQLMysql必会语句

mysqlmysql优化