MySQL数据库

什么是SQL?

       SQL(Structured Query Language)结构化查询语言

数据库的好处

1):储存大量数据,方便检索和访问

2):保持数据信息的一致,完整

3):共享和安全

4):通过组合和分析,产生新的有用信息

数据库的安装配置

1):端口号设置:               使用默认端口号3306

2):摩恩字符集设置:     使用UTF8字符集

3):Root密码设置:         根据自己需求(记住)

4):环境变量配置: 将MySQL安装目录下斌文件夹写入环境变量.

5):通过查看my.ini配置文件,检查是否配置正确,如有误请修改(修改后需重启MySQL)

 

MySQL中的运算符

 

算术运算符

 +    加运算,求两个数或表达式相加的和

 -     减运算,求两个数或表达式相加的差

 *    乘运算,求两个数或表达式相加的积

 /     除运算,求两个数或表达式相除的商,      例如:5/5的值为1,  5.7/3的值为1.900000

 %   取模运算,求两个数或表达式相除的余数       例如:5%3的值为2.

赋值运算符

 =    把一个数或表达式赋给另一个变量         例如: Name = “XXX”

比较运算符

=等于               > 大于           < 小于             <> 不等于     >=大于等于                  <=小于等于

!=不等于(非SQL-92标准)

逻辑运算符

AND                   等同于Java的&&        且...和

OR             等同于java的||            或....

NOT          等同于Java的!              取反...

 

使用DDL语句操作数据库

创建MySql创建数据库   CREATE DATABASE 数据库名;(可忽略大小写)

 

 

Query OK,       表示SQL语句执行成功

1 row affected        表示操作影响行数

0.00 sec            表示操作执行时间

 

查看数据库列表                 show databases;

 

 

 

选择数据库           USE 数据库名;  (操作数据库之前必须要选择数据库)

 

 

 

删除数据库   DROP DATABASE 数据库名

 

 

 

使用SQLyog管理工具

创建数据库(也可以通过DDL语句来创建数据库)

 

 

 SQL的分类:

       a.DDL(Data Definition Language)数据定义语言

                            CREATE

                            DROP

                            ALTER

         b.DML(Data Manipulation Language)数据操纵语言

                            INSERT

                            UPDATE

                            DELETE

                            SELECT

         c.DCL(Data Control Language)数据控制语言

                            GRANT

                            REVOKE

         d.TCL(Transaction Control Language)事务控制语言

                            COMMIT

                           ROLLBACK

 

使用SQL创建表的步骤

1:确定表中有哪些列

2:确定表中的列的数据类型

3:给表添加约束

4:建立表与表之间的关系。

创建表的基本语法:

CREATE TABLE [IF NOT EXISTS] 表名(

字段1 数据类型[字段属性[约束][索引][注释]]

字段2数据类型[字段属性[约束][索引][注释]]

。。。。。。

字段n 数据类型[字段属性[约束][索引][注释]]

)[表类型][字符集][注释];

 

表列类型的设置:

列类型:规定数据库中列的值的数据类型

列表类型分类:

1):数值类型

a)        整数型

1字节     TINYINT

2字节     SMALLINT

3字节     MEDIUMINT

4字节     INT 常用

8字节     BIGINT

b) 浮点型

4字节 FLOAT

8字节 DOUBLE

UNSIGNED      设置无符号的数据,该数据列不允许为负数。

ZEROFILL          不足位数,使用0填充 如INT(4) 22则为0022

2):字符串类型

常用:char    varchar    text

char(M)  定长字符串 M字节;M为0-255的整数

Varchar[(M)]  可变字符串; M为0-65535的整数

定点数:DECIMAL(M,D);

M:最大精度位数即总位数,M的取值范围是1~65,默认值为10;

D:小数位精度位数,D的取值范围是0~30;

3):日期和时间

常用:DATE(日期格式)TIME(时间格式) DATETIME(常用组合格式) TIMESTAMP(时间戳:表示1970-2037年的某个时刻)

4):null

理解为“没有值”或“未知值”

如果使用null进行算术运算,结果为null

在MySQL中,0或null都意味着假,1为真。

5):其他

Clob 大的文章使用

Blob 储存音视频使用

表列的注释:

Comment =’注释内容

表的注释

Comment ’XXX’

MySQL注释:

#...            单行注释

/*......*/ 多行注释

 

 

表类型: 设置表类型使用ENGINE=表类型;                 

1):MyISAM

2):InnoDB       默认的

MyISAMInnoDB区别

名称                   MyISAM                   InnoDB

事务处理          不支持                    支持

数据行锁定              不支持                    支持

外键约束           不支持                    支持

全文索引          支持                       不支持

表空间大小             较小                    较大,2

应用场合:

MyISAM : 节约空间及相应速度

InnoDB :  安全性,事物处理及多用户使用

 

数据库表存储的位置:安装目录\data

       a.数据库表是以文件方式存储在磁盘中的。

       b.包括表文件、数据文件和数据库选项文件。

       c.目录名对应数据库名,文件名对应表名。

 

注:innoDB类型的表有一个*.frm文件和上一级目录的ibdata1文件。

 

Myisam类型的表有三个文件:

              a.*.frm表结构定义文件

              b.*.myd表数据文件

              c.*.myi表索引文件

设置字符集

1,创建时通过命令来设置,如:

CREATE TABLE 表名(

#省略代码

)CHARSET = UTF8;

2.如无设定,则根据MySQL数据库配置文件my.ini中的参数设定

 

如:character-set-sever=utf8

使用DDL语句修改表:

1):修改表明

ALTER TABLE 旧表名 RENAME 新表名

2):添加字段

ALTER TABLE 表名 ADD 字段名 数据类型 [属性]

3):修改字段

ALTER  TABLE 表名 MODIFY 字段名 列类型[属性]修改列类型

ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型(属性) 修改类名

4):删除字段

ALITE TABLE 表名 DROP 要删除的字段名

 

表操作(选择好数据库之后):

查看表是否存在      

Show 表名;

查看表定义:

Describe 表名 或desc 表名

删除表:

Drop table[IF EXISTS]表名  if exists是判断数据库是否存在.

查询

Help 查询内容.或 ? 查询内容

 

数据完整性分类

1):数据实体完整性:

约束方法:唯一约束,主键约束,标识列(SQL server)

2):字段完整性

约束方法:限制数据类型,检查约束,外键约束,默认值,非空约束.

3):引用完整性

约束方法:外键约束.                                                                          

4):自定义完整性

约束方法:规则,储存过程,触发器

 

表列的属性约束

auto_increment    自动增长,每添加一条记录,会在上一条数据基础上加1.一般设置主键且为整数类型。可定义初始值和步长。

Null和not null      

Null默认为null,没有插入数值,值为null 可以赋空.

Not null   则该列必须有值。

Default    默认的,用于设置默认值。

Unique    key(UK) 设置字段的值是唯一的,但只能有一个空值.

Primary key(pk) 主键约束 设置该字段为表的主键,可唯一标识该表记录

Foreign key(fk)  外键约束 用于在两表之间建立关系,需要制定引用主表的哪个字段

 

添加主键约束

ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY 表名(主键字段)

添加外键约束

ALTER TABLE 外键表名 ADD COMSTRAINT约束名 FOREIGN KEY(外键字段) REFERNCES 主键表名(主键表的主键名)

 

约束名常规设计格式:FK_外键表名_主键表名

 

选择主键的原则:

最少性

尽量选择单个键作为主键

稳定性

尽量选择数值更新少的列作为主键

posted on 2019-05-05 16:27  听风醉  阅读(224)  评论(0编辑  收藏  举报

导航

因为不可能,所以才值得相信。