MySQL学习笔记一

目录

一.MySQL的功能特点

二.数据库查询语言

三.MySQL架构

四.MySQL命令行客户端

五.创建和管理数据库

六.创建和管理表


一.MySQL的功能特点

1.开源

MySQL在GPL的限制下通过因特网开发,免费提供其源代码,任何人可以修改其代码。

2.可扩展

MySQL可伸缩,可用于管理小型或大型数据库,RDBMS适应数据的增长。

3.可移植

MySQL支持多个操作系统。

4.使用客服机/服务器和嵌入式架构

5.高性能

6.低TCO

7.可靠

8.便于利用

9.安全

10.高可用

二.数据库查询语言

1.数据定义语言(DDL)

create:创建数据库对象(表)。

alter:修改数据库对象的定义。

rename:修改数据库对象的名称。

drop:删除对象。

truncate:删除表中的所有数据。

2.数据操作语言(DML)

insert:在表中插入一个或多个记录。

update:修改表中的数据。

delete:删除表中的一条记录。

select:以不同格式显示一条或多条记录。

3.数据控制语言(DCL)

grant:授权对数据库对象的访问权限。

revoke:拒绝用户对特定数据库对象的访问权限。

4.事务控制语言(TCL)

commit:保存事务期间做的更改。

rollback:撤销事务期间做的更改。

savepoint:标识事务期间的某点,与rollback语句使用可以撤销事务的一部分。

三.MySQL架构

1.应用层:使用户与MySQL服务器交互。

用户类型:数据库管理员,客户端,查询用户。

2.逻辑层:逻辑层负责解析,分析,优化和查询等等活动。

3.物理层:负责把用户数据,系统日志和事件信息的数据以物理方式读写入辅助存储设备。

四.MySQL命令行客户端

MySQL命令行客服端是执行SQL语句的命令行用户界面。

常见的MySQL命令

1.help或者\h或者? :显示命令的描述。

eg:help show

2.clear或者\c :清除当前的输入语句

eg:clear

3.connect或者\r :连接或者重新连接到服务器

eg:connect mydatabase

4.quit或者\q :退出MySQL

eg:quit

5.status或者\s :显示服务器的状态

eg:status

6.delimiter或者\d :设置MySQL认为是语句结尾的字符

eg:delimiter &

五.创建和管理数据库

1.了解数据库对象

表:表一行和列的格式包含数据。它提供数据的结构化组织。仅仅存储满足预定义的数据,执行不违背预定义的操作。

索引:索引是内部表结构,MySQL用它基于一列或者多列的值来提供对表的快速访问。

视图:视图是虚拟表,提供对来自一个或者多个相关表的列的子集进行访问。

存储过程:存储过程是MySQL和过程语句的命名块,存储在服务器中作为一个单元执行。

函数:函数是SQL和过程语句的命名快,存储在一个名称下并返回值。

触发器:触发器是与表相关的命名对象。由SQL语句组成。

 2.数据库类型

information_schema:虚拟数据库,存储MySQL服务器所维护的所有数据库信息,可以访问数据库的元数据,元数据含有数据容器的信息,比如数据库名称,表结构,索引信息,触发器信息等等。

mysql:mysql数据库是容纳系统表的管理数据库,这些表包含的信息包括用户定义函数信息,授权表信息,帮助系统信息等等。

performance _schema:通过监视MySQL服务器的事件检查服务器执行情况。包含history,summary表等等。

3.创建用户定义数据库

CREATE DATABASE [IF NOT EXISTS] <database_name>
[[DEFAULT] CHARACTER SET <character_set_name>]
[[DEFAULT] COLLATE <collate_name>]
模板

CREATE DATABASE IF NOT EXISTS test_mysql
DEFAULT CHARACTER SET latin1
DEFAULT COLLATE latin1_bin;
创建test_mysql数据库

 latin1_bin是latin1字符集的字符序

MySQL支持的一些字符集:big5,dec8,latin1,latin2。

SHOW CHARACTER SET;
列出字符集

SHOW COLLATION;
列出字符序

4.访问数据库

USE <database_name>

USE test_mysql;
进入test_mysql数据库


SHOW DATABASES;
显示所有数据库

5.修改数据库

ALTER DATABASE <database_name>
[[DEFAULT] CHARACTER SET <character_set_name>]
[[DEFAULT] COLLATE <collate_name>]
模板

ALTER DATABASE test_mysql
CHARACTER SET big5
COLLATE big5_chinese_ci;
修改test_mysql数据库

6.删除数据库

DROP DATABASE database_name;

DROP DATABASE test_mysql;

六.创建和管理表

表是用来存储数据的数据库对象。

1.创建表produce

CREATE TABLE IF NOT EXISTS Produce
(
id int NOT NULL,
name varchar(45) NOT NULL,
price INT NULL,
order INT NULL
)
ENGINE = innodb;
创建表


DESCRIBE <table_name>

DESCRIBE Produce;
查看表

2应用约束

id设置为主键

CREATE TABLE IF NOT EXISTS Produce
(
id int NOT NULL,
name varchar(45) NOT NULL,
price INT NULL,
order INT NULL,
PRIMARY KEY (id)
)
ENGINE = innodb;

唯一约束(name)

CREATE TABLE IF NOT EXISTS Produce
(
id int NOT NULL,
name varchar(45) NOT NULL,
price INT NULL,
order INT NULL,
PRIMARY KEY (id),
Constraint Unique_PName UNIQUE(name)
)
ENGINE = innodb;

外键约束(fk1,fk2)

CREATE TABLE IF NOT EXISTS order
(
id int NOT NULL,
name varchar(45) NOT NULL,
order_id INT NOT NULL,
P_id INT NOT NULL,
c_id INT NOT NULL,
price INT NULL,
order INT NULL,
PRIMARY KEY (id),
Constraint Unique_PName UNIQUE(name),
CONSTRAINT fk1 FOREIGN KEY (p_id) REFERENCES Products(p_id),
CONSTRAINT fk2 FOREIGN KEY (c_id) REFERENCES Customers(c_id)
)
ENGINE = innodb;

3.更改表

添加约束

alter table customer
add constraint pk_id primary key (customer_id)

添加列

alter table customer
add column category varchar(45);

修改列

alter table produce 
alter column category set default 'Silk Carpets';

删除列

alter table produce
drop column name;

重命名表

alter table produce
rename to PPPddd;
alter table pppddd 
rename to produce;

4.操作数据表

插入数据

insert

CREATE TABLE IF NOT EXISTS products
(
Product_id INT NOT NULL,
Product_name VARCHAR(45) NOT NULL,
hand int NOT NULL,
PRIMARY KEY(Product_id),
constraint Unique_PName UNIQUE (Product_name)
);
创建表

insert into Products set Product_id = 2, Product_name = 'Tom',hand = 123;
set插入一行数据

insert into Products (Product_id,Product_name,hand) values (2,'jerry',234);
value插入一行数据

insert into Products values (3,'aili',345),(4,'boy',456);
value插入多行数据

 replace

replace into Products (Product_id,Product_name,hand)
values (5,'Tim',567);


replace into Products values(6,'aa',678), (7,'bb',789);

更新数据

update Products set hand = 123 where Product_id = 2;

复制数据

create table New_Product
(
P_id int not null,
P_name varchar(45) not null,
primary key (P_id)
);
创建表


insert into New_Product
select Product_id,Product_name
from Products;
复制数据到New_Product


replace into New_Product
select Product_id,Product_name
from Products;
复制数据到New_Product


create table New_Product
(
Product_id int,
Product_name varchar(45),
hand int
)
select Product_id,Product_name,hand from Products;
复制数据到New_Product

删除数据

delete from Products
where Product_name = 'Tom';
删除Tom这一行


delete from Products;
删除全部


truncate table Products;
删除全部数据并重新创建表

5.删除表

disable table table_name;

drop table table_name;
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值