mySQL数据库

来源:互联网 发布:炒股软件接口 编辑:程序博客网 时间:2024/04/30 10:09

数据库

概念

数据的集合

目前流行的数据库存储形式为:关系型数据库

流行数据库软件有MySql,SqlServer,Oracle,DB2

注意

如今大部分数据库都属于关系数据库,其关系架构理论是1970年由IBM研究员提出,他将数据以大家所熟知的表格方式进行存储与呈现,在以数学的集合论为基础,将表格与表格之间建立关系,以处理复杂的数据关系。

 

 

MySQL概述

Mysql基础

MySQL由瑞典MySQL AB公司开发,目前输入Oracle公司。

MySQL是一个开源的关系型数据库管理系统。

MySQL分为社区版和企业版。

MySQL支持各种平台,例如:windows,linux,MacOS,HP-UX,IBMAIX等。

MySQL目录结构

bin目录,存储可执行文件

data目录,存储数据文件

include目录,存储包含的头文件

lib目录,存储库文件

share目录,错误消息和字符集文件

启动MySQL服务

运行cmd

输入命令:net start mysql

停止MySQL服务:net stop mysql

登录MySQL

命令:“mysql -v”

输出版本信息

 

从控制台进入mysql

Mysql –uroot -p

MySQL常用命令

显示当前服务器版本

SELECT VERSION();

显示当前用户

SELECT USER();

MySQL语句的规范

关键字与函数名称全部大写。

数据库名称,表名称,字段名称全部小写

SQL语句必须以分号结尾

 

 

 

数据库相关操作

创建

创建数据库

 Create database db01;

查看所有数据库

Show databases;

查看已创建的数据库

Show create database db01;

修改

修改数据库编码方式

ALTER DATABASE db01 CHARACTER SET gbk/utf8 ;

删除

删除数据库

DROP DATABASE db01;

数据类型和数据表

数据类型是指列,存储过程参数表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型。




数据表

数据表是数据库中最重要的组成部分之一,是其他对象的基础。


USE

       打开数据库 USE 数据库名称。

创建数据表

CREATE TABLE table_name(

….

)

例如:

CREATE TABLE t01( 
username VARCHAR(20), 
age TINYINT UNSIGNED, 
salary FLOAT(8,2) );

SHOW TABLES

查看数据中的表

 

SHOW COLUMNS FROM t01

查看t01的表结构

记录的插入与查找

插入记录

 

INSERT [INTO] tbl_name [(col_name, ...)] VALUES (val,...);

例如:

完整写法 
INSERT t01 (username, age, salary)VALUES('Jack', 28, 7110.12); 

简写 
INSERT t01 VALUES ('Tom', 25, 7321.65);

注意:

如果采用简写,所有的字段必须赋值。

 

记录查找

SELECT expr,...FROMtbl_name

查找所有记录 
SELECT * FROM t01;

后面讲解复杂的查找方式

 

空值与非空

    NULL,字段值可以为空 
NOT NULL
,字段值不能为空

例如:

CREATE TABLE t02( 
username VARCHAR(20) NOT NULL, 
age TINYINT UNSIGNED NULL 
);

插入记录时,字段username不能为空,而字段age可以为空。

 

 

AUTO_INCREMENT

自动编号,且必须与主键组合使用 
默认情况下,起始值为1,每次的增加量为
这样做,可以保证记录的唯一性

例如:

CREATE TABLE t03( 
id SMALLINT UNSIGNED AUTO_INCREMENT, 
username VARCHAR(20) NOT NULL 
);

创建失败,需要声明主键

 

PRIMARY KEY

主键约束 
每张数据表只能存在一个主键 
主键保证记录的唯一性 
主键自动为NOT NULL

例如:

CREATE TABLE t03( 
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
username VARCHAR(20) NOT NULL 
);

注意:

AUTO_INCREMENT 字段不一定定义为主键,但是主键一定要和AUTO_INCREMENT一起使用。 
主键允许赋值,但是不允许赋相同的值。

 

UNIQUE KEY

唯一约束 
唯一约束可以保证记录的唯一性
唯一约束的字段可以为空值(NULL) 
每张数据表可以存在多个唯一约束

例如:

CREATE TABLE t04( id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARYKEY, 
username VARCHAR(20) NOT NULL UNIQUE KEY 
age TINYINT UNSIGNED 
);

测试:

插入两条名字一样的记录会报错

 

DEFAULT

默认值 
当插入记录时,如果没有明确为字段赋值,则自动赋予默认值。

例如:

CREATE TABLE t05( id SMALLINTAUTO_INCREMENT PRIMARY KEY, 
username VARCHAR(20) NOT NULL, 
sex ENUM('1', '2', '3') DEFAULT '3' 
);

如果在插入记录时,不填写sex字段的值,那么系统自动赋默认值'3'

 

约束

保证数据的完整性和一致性

约束分为表级约束和列级约束

如果针对一个字段进行约束,称为列级约束 
如果针对两个或两个以上的字段进行约束,称为表级约束

 

约束包含主键约束,唯一约束,默认约束,非空约束,外键约束

PRIMARY KEY    UNIQUE KEY  DEFAULT   NOT NULL  FOREIGN KEY

·        外键约束

保持数据一致性,完整性。 
实现一对一或一对多关系。

外键约束的要求

父表和子表必须使用相同的存储引擎。 
数据表的存储引擎只能为InnoDB。 
外键列和参照列必须具有相似的数据类型,其中数字的长度或是否有符号位必须相同;而字符的长度则可以不同。 
外键列和参考列必须创建索引。如果外键列不存在索引的话,MySQL将自动创建索引。

 FOREIGN KEY (pid) REFERENCES province (id) );

修改数据表

添加列

ALTER TABLE user ADD age TINYINT UNSIGNED; 
ALTER TABLE user ADD password VARCHAR(20) AFTERname;

删除列

ALTER TABLE user DROP password;

添加主键约束

ALTER TABLE tbl_name ADD 
PRIMARY KEY (index_col_name,...)

例如: 
先创建一张表user02

CREATE TABLE user02( id TINYINT UNSIGNED, 
name VARCHAR(20) NOT NULL);

然后指定id为主键

ALTER TABLE user02 ADD PRIMARY KEY (id);

添加外键约束

ALTER TABLE tbl_name ADD FOREIGN KEY (index_col_name) 
reference_definition

例如:

ALTER TABLE user02 ADD FOREIGN KEY (pid) REFERENCES 
province (id);

删除主键约束

ALTER TABLE tbl_name DROP PRIMARY KEY

修改字段数据类型

ALTER TABLE tbl_name MODIFY COLUMN name TEXT                                           

记录操作(增删改查)

插入记录

INSERT[INTO] tbl_name [(col_name,...)] {VALUES|VALUE} 
({expr | DEFAULT},...),(...),...

例如: 
创建一张表格

CREATETABLE student ( 
id TINYINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
name VARCHAR(20), 
age TINYINT );

插入一条记录

INSERTstudent (name, score)VALUES('Jack', 100); 
INSERT student VALUES(NULL, 'Rico', 90);

 

更新记录

所有记录的分数更新为60 
UPDATE student SET score = 60;

--

将id=1的字段更新为90 
UPDATE student SET score = 90 WHERE id = 1;

删除记录(单表删除)

DELETE FROM student WHERE id = 2;

 

0 0