Mysql基本使用
> 数据库就是存储数据的仓库
**分为关系型数据库和非关系型数据库**
常用的数据库管理软件有:甲骨文的oracle MySQL(开源、免费、跨平台)
IBM的db2 微软的sql server access
下载安装MySQL:
登录 cmd :mysql -u用户名 -p(回车就是输入密文,不回车直接输入就是明文,都可以)
退出 quit;exit;-q; 不要忘记分号
连接其他主机的MySQL:
mysql -h 服务器IP -P 端口号(一般默认3306)-u用户名 -p
sql及其规范
sql就是针对数据库操作的指令集
不区分大小写,尽量用大写
单行注释 --
多行注释 /* */
打印当前时间 select now();
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2019-09-18 20:26:25 |
+---------------------+
1 row in set (0.00 sec)
显示所有数据库:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| book_msg |
| dianqi_std |
| information_schema |
| mysql |
| performance_schema |
| sakila |
| sys |
| world |
+--------------------+
8 rows in set (0.15 sec)
删除数据库:
drop database 数据库名;
创建数据库:
create database dbname;
C:\ProgramData\MySQL\MySQL Server 8.0\Data --所有创建的数据库都在这ProgramData是隐藏的
mysql</span>> create database s3; --<span style="color: #000000;">创建一个名为s3的数据库
Query OK, </span>1 row affected (0.02<span style="color: #000000;"> sec)
mysql</span>> create database s3; --<span style="color: #000000;">重复创建这个数据库
ERROR </span>1007 (HY000): Can<span style="color: #800000;">'</span><span style="color: #800000;">t create database </span><span style="color: #800000;">'</span>s3<span style="color: #800000;">'</span><span style="color: #800000;">; database exists --报错,已存在</span>
mysql> create database <span style="color: #0000ff;">if</span> <span style="color: #0000ff;">not</span> exists s3; --<span style="color: #000000;"> 加上一句话就不报错,出现警告
Query OK, </span>1 row affected, 1 warning (0.01<span style="color: #000000;"> sec)
mysql</span>> show warnings; --<span style="color: #000000;"> 查看出现的警告
</span>+-------+------+---------------------------------------------+
| Level | Code | Message |
+-------+------+---------------------------------------------+
| Note | 1007 | Can<span style="color: #800000;">'</span><span style="color: #800000;">t create database </span><span style="color: #800000;">'</span>s3<span style="color: #800000;">'</span><span style="color: #800000;">; database exists |</span>
+-------+------+---------------------------------------------+
1 row <span style="color: #0000ff;">in</span> set (0.00<span style="color: #000000;"> sec)
查看创建信息
show create database s3;
</span>+----------+------------------------------------------------------------------------------------------------------------------------------+
| Database | Create Database |
+----------+------------------------------------------------------------------------------------------------------------------------------+
| s3 | CREATE DATABASE `s3` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION=<span style="color: #800000;">'</span><span style="color: #800000;">N</span><span style="color: #800000;">'</span> */ |
+----------+------------------------------------------------------------------------------------------------------------------------------+
1 row <span style="color: #0000ff;">in</span> set (0.00<span style="color: #000000;"> sec)
在创建时指定字符编码
create database s4 character set gbk;
再查看就变为gbk编码了
mysql</span>><span style="color: #000000;"> show create database s4;
</span>+----------+-----------------------------------------------------------------------------------------------+
| Database | Create Database |
+----------+-----------------------------------------------------------------------------------------------+
| s4 | CREATE DATABASE `s4` /*!40100 DEFAULT CHARACTER SET gbk */ /*!80016 DEFAULT ENCRYPTION=<span style="color: #800000;">'</span><span style="color: #800000;">N</span><span style="color: #800000;">'</span> */ |
+----------+-----------------------------------------------------------------------------------------------+
1 row <span style="color: #0000ff;">in</span> set (0.00<span style="color: #000000;"> sec)
修改已经创建的数据库的字符编码
ALTER DATABASE employee CHARACTER SET UTF8;
进入数据库:
use bdname;
检测当前所在的数据库:
select database();
</span>+------------+
| database() |
+------------+
| s4 |
+------------+
1 row <span style="color: #0000ff;">in</span> set (0.00<span style="color: #000000;"> sec)
可以通过use dbname 在不同的数据库之间切换
表的创建
主键:非空且唯一 not null unique
三种数据类型:数字、字符、时间和日期
mysql> CREATE TABLE employee( --创建表
-> id INT PRIMARY KEY AUTO_INCREMENT, --主键 自增
-> name VARCHAR(25), --25个字节
-> birthday date,
-> salary DOUBLE(7,1) --一共七个数字,小数点后一位
-> );
Query OK, 0 rows affected (0.10 sec)
mysql</span>><span style="color: #000000;"> desc employee; 查看表结构
</span>+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(25) | YES | | NULL | |
| birthday | date | YES | | NULL | |
| salary | double(7,1) | YES | | NULL | |
+----------+-------------+------+-----+---------+----------------+
4 rows <span style="color: #0000ff;">in</span> set (0.01<span style="color: #000000;"> sec)
mysql</span>> SHOW CREATE TABLE employee; --<span style="color: #000000;">查看表的创建信息
</span>+----------+------------------------------------
| Table |<span style="color: #000000;"> Create Table
</span>+----------+-----------------------------
| employee |<span style="color: #000000;"> CREATE TABLE `employee` (
`id` int(</span>11<span style="color: #000000;">) NOT NULL AUTO_INCREMENT,
`name` varchar(</span>25<span style="color: #000000;">) DEFAULT NULL,
`birthday` date DEFAULT NULL,
`salary` double(</span>7,1<span style="color: #000000;">) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE</span>=InnoDB DEFAULT CHARSET=gbk |
+----------+-------------------------------
1 row <span style="color: #0000ff;">in</span> set (0.01<span style="color: #000000;"> sec)
表字段操作:
添加字段:
ALTER TABLE employee ADD entry_date date not null AFTER birthday; --AFTER(FIRST)将字段添加到某个字段之后
添加多个字段
ALTER TABLE employee ADD A INT,
ADD B INT;
删除字段:
ALTER TABLE employee DROP A,
DROP B;
修改字段:
ALTER TABLE employee MODIFY A VARCHAR(4) UNIQUE;
修改已经创建的表的字符编码
ALTER TABLE employee CHARACTER SET UTF8;
修改字段名:
ALTER TABLE EMPLOYEE CHANGE A B CHAR(4);
修改表名:
RENAME TABLE S3 TO S4;
表记录操作:
向表中添加记录:
方式一 : () VALUES () VALUES左右对应
INSERT INTO EMP (id,name,gender,salary,B) VALUES
(1,"瞎驴",1,5000.21,"HELL");
添加多条:
INSERT INTO EMP (name,gender,salary,B) VALUES
("ALEX",1,5000,"WORL"),
("丹丹",0,3000,"HELO");
注意:如果插入的id号不是按顺序来的,下次插入会按插入的id继续向下计数
就是说本来id号到6了,继续插入记录应该是7,但指定id为10,下面插入的记录如果没指定id,
就是11
方式二: SET 键值对:
INSERT INTO EMP SET name="珊珊",gender=0; --其余没有对应的自动为NULL
查看表记录:
mysql> select * from emp;
+----+------+--------+--------+------+
| id | name | gender | salary | B |
+----+------+--------+--------+------+
| 1 | 瞎驴 | 1 | 5000.2 | HELL |
| 4 | ALEX | 1 | 5000.0 | WORL |
| 5 | 丹丹 | 0 | 3000.0 | HELO |
+----+------+--------+--------+------+
3 rows in set (0.00 sec)
修改表记录:
UPDATE EMP SET name = "lvxia" WHERE ID = 1 -- WHER 做筛选,否则会修改所有的name
删除表记录:
两种方式:
DELETE FROM TABLE_NAME [WHERE....]; :逐条删除
TRUNCATE TABLE TABLE_NAME; :删除整个表,在创建一个空表