MySQL学习笔记
P3 数据库概念与MySQL安装
数据库概念与MySQL安装
点击此处 Mysql的官网 进入下载
1. 如何登录数据库服务器?
语句:-u 用户名(root) -p(密码)
mysql -u 用户名(root) -p(密码)
2. 如何查询数据库服务器中的所有数据库?
语句:show databases
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
3.如何选中某一个数据库进行操作?
😗 选中数据库
语句:use 库名
mysql> use sys;
Database changed
😗 未选中直接操作数据库报错
mysql> select * from sys;
ERROR 1046 (3D000): No database selected
P4 如何创建数据库数据表
1. 如何退出数据库服务器?
语句:exit
mysql> exit;
>bye
2. 如何在数据库服务器中创建我们的数据库?
语句:create database 库名
mysql> create database test;
Query OK, 1 row affected (0.02 sec)
mysql> use test;
Database changed
3. 如何查看某个数据库中所有的数据表?
正确如下,输错查询会报错
show tables
mysql> show tables;
Empty set (0.00 sec)
mysql> show tablse;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'tablse' at line 1
4. 如何创建一个数据表?
示例
mysql> CREATE TABLE pet(
-> name VARCHAR(20),
-> owner VARCHAR(20),
-> spicies VARCHAR(20),
-> sex CHAR(1),
-> birth DATE,
-> death DATE);
Query OK, 0 rows affected (0.08 sec)
5. 查看数据表是否创建成功
show tables
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| pet |
+----------------+
1 row in set (0.00 se
6. 查询创建好的数据表的结构
describe 表名
mysql> describe pet;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| owner | varchar(20) | YES | | NULL | |
| spicies | varchar(20) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
| birth | date | YES | | NULL | |
| death | date | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
6 rows in set (0.01 sec)
说明:
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
Field : 字段的名称
Type : 字段的类型,可以有int var varchar
Key : 是否是关键字 如可以定义为: primary key 或者 unique key …
Default: : 若是该字段没有主动设置值的时候,该字段的默认值是什么?
注意事项:
1:var()与varchar()的区别在于var()是定常的,哪怕存储的字符串没有达到"()“中数字的上限,var()依然会占用空格来填充空间.而varchar()则是不定长的,没有达到”()“中的上限则会自动去掉后面的空格;
2:性别不要用:sex 要用:gender 一个是性 一个是性别;
3:定义最后一个字段的时候不要加”,";
4:上面的"VAR",“VARCHAR”,"DATE"可以用小写.不过最好用大写来表示区分关键字,若不然也许写到后面你自己都不知道这个词是数据库中的关键字还是你自己自定义的一些数据,同时一定要用英文的标点符号也必须半角输入
P5 INSERT 增加数据记录
1. 如何查看数据表中的记录?
mysql> select * from pet;
Empty set (0.00 sec)
2. 如何往数据表中添加数据记录
INSERT INTO 表名 VALUES ('value1', 'value2','value3,'value4','value5');
INSERT INTO 表名 (字段1,字段2,字段3,字段4,字段5) VALUES ('value1', 'value2','value3,'value4','value5');
mysql> INSERT INTO pet
-> VALUES ('puffball', 'Diane', 'hamster','f','1990-03-30',NULL);
Query OK, 1 row affected (0.00 sec)
注意:
NULL:代表的是空,表示该字段还没有数据.千万不要主动填写’NULL’,这代表你的字段有一个值叫做’null’.
其实还有一种写法:
INSERT INTO pet(name,owner) VALUES (‘xx’,‘cc’);
代表我只在name和owner字段上面插入的一条,其他皆为NULL/默认值的数据
3. 再一次查询
查表:select * from 表名;
mysql> select * from pet;
----------+-------+---------+------+------------+-------+
| name | owner | spicies | sex | birth | death |
+----------+-------+---------+------+------------+-------+
| puffball | Diane | hamster | f | 1990-03-30 | NULL |
+----------+-------+---------+------+------------+-------+
1 row in set (0.00 sec)
再一次插入数据:INSERT INTO 表名 VALUES ('value1', 'value2','value3,'value4','value5');
mysql> INSERT INTO pet
-> VALUES ('旺财','周星驰','狗','公','1990-01-01',NULL);
Query OK, 1 row affected (0.00 sec)
(拓展:
此处有 ERROR 1366 (HY000) 报错情况处理,修改编程方式(见博客【MySQL使用问题笔记】)
插入报错情况
mysql> INSERT INTO pet
-> VALUES ('旺财','周星驰','狗','公','1990-01-01',NULL);
ERROR 1366 (HY000): Incorrect string value: '\xE6\x97\xBA\xE8\xB4\xA2' for column 'name' at row 1
更改字符集编码后插入正确
mysql> INSERT INTO pet
-> VALUES ('旺财','周星驰','狗','公','1990-01-01',NULL);
Query OK, 1 row affected (0.01 sec)
mysql> select * from pet;
+----------+-----------+---------+------+------------+-------+
| name | owner | spicies | sex | birth | death |
+----------+-----------+---------+------+------------+-------+
| puffball | Diane | hamster | f | 1990-03-30 | NULL |
| 旺财 | 周星驰 | 狗 | 公 | 1990-01-01 | NULL |
+----------+-----------+---------+------+------------+-------+
2 rows in set (0.00 sec)
P6 MySQL数据类型与类型选择
1. MySQL 常用数据类型有哪些?
MySQL支持多种类型,大致可以分为三类:
mysql> create table testType(
-> number TINYINT
-> );
mysql> INSERT INTO testType VALUES (127);
Query OK, 1 row affected (0.01 sec)
mysql> select * from testType;
+--------+
| number |
+--------+
| 127 |
+--------+
1 row in set (0.00 sec)
数值
日期
时间和字符串(字符)类型
注意:
char(n) 和 varchar(n) 中括号中 n 代表字符的个数,并不代表字节个数,比如 CHAR(30) 就可以存储 30 个字符。
CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。
BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。
BLOB 是一个二进制大对象,可以容纳可变数量的数据。有 4 种 BLOB 类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。它们区别在于可容纳存储范围不同。
有 4 种 TEXT 类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。对应的这 4 种 BLOB 类型,可存储的最大长度不同,可根据实际情况选择。
2. 类型如何选择?
日期 选择按照格式
数值 和 字符串按照大小
P7. 数据记录增删改查操作
单条执行
1. 插入数据到数据表
INSERT INTO 表名 VALUES('值1','值2','3','4','1993-02-04',NULL);
mysql> select * from pet;
+----------+-----------+---------+------+------------+------------+
| name | owner | spicies | sex | birth | death |
+----------+-----------+---------+------+------------+------------+
| Fluffy | Harold | cat | f | 1993-02-04 | NULL |
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
| Fang | Benny | dog | m | 1990-08-27 | NULL |
| Bowser | Diane | dog | m | 1979-08-31 | 1995-07-29 |
| Chirpy | Gwen | bird | f | 1998-09-11 |