MySQL数据库
知识要点
-
进入
mysql
-
创建/删除数据库
-
建表、删表
-
单表数据操作
进入mysql
本地连接: mysql -u用户名 -p 进入root : mysql -uroot -p 输入密码 qwe123
创建用户
#创建用户
mysql> CREATE USER 'jianeng'@'%' IDENTIFIED BY 'qwe123';
#给用户赋予权限
mysql> GRANT ALL ON *.* TO 'jianeng'@'%';
#使更改立即生效
mysql> FLUSH PRIVILEGES;
#退出
mysql> q
查看在哪个数据库里:SELECT DATABASE();
查看当前用户:SELECT USER();
查看有哪些数据库:SHOW DATABASES;
创建数据库
CREATE DATABASE [IF NOT EXISTS] db_name
mysql> CREATE DATABASE `mydb`; Query OK, 1 row affected (0.00 sec) mysql> CREATE DATABASE `mydb`; ERROR 1007 (HY000): Can't create database 'mydb'; database exists mysql> CREATE DATABASE IF NOT EXISTS `mydb`; Query OK, 1 row affected, 1 warning (0.00 sec) mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mydb | | mysql | | performance_schema | | sys | | test | +--------------------+ 6 rows in set (0.00 sec) mysql>
删除数据库
DROP DATABASE [IF EXISTS] dbname;
mysql> DROP DATABASE `mydb`; Query OK, 0 rows affected (0.00 sec) mysql> DROP DATABASE ` mydb`; ERROR 1008 (HY000): Can't drop database 'mydb'; database doesn't exist mysql> DROP DATABASE IF EXISTS `mydb`; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql>
注意:
SQL语句必须以分号结尾
打开数据库
USE 数据库名称
进入mysql后,使用SELECT DATABASE();
后会发现当前并没有进入到某个数据库中,需要使用use
来进入某个数据库中。
查看数据库中的表
数据表(或称表)是数据库最重要的组成部分之一,是其他对象的基础
查看数据表列表SHOW TABLES [FROM db_name]
SHOW TABLES
查看当前数据库中的数据表。
SHOW TABLES FROM 'mysql'
查看mysql
这个数据库中的数据表。
创建数据表
CREATE TABLE [IF NOT EXISTS] table_name( column_name data_type, )
例:
mysql> CREATE TABLE `tb1`(
-> `id` INT comment '编号',
-> `name` VARCHAR(20) comment '名字'
-> );
Query OK, 0 rows affected (0.02 sec)
mysql>
#comment 用来说明的,给人看的
数据类型:INT 整数类型VARCHAR 变长字符串
查看创建的表:
SHOW CREATE TABLE tb_name;(G)
例: mysql> SHOW CREATE TABLE `tb1`G ************** 1. row ********************** Table: tb1 Create Table: CREATE TABLE `tb1` ( `id` int(11) DEFAULT NULL, `name` varchar(20) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 1 row in set (0.00 sec) mysql>
查看数据表结构DESCRIBE tb_name;
SHOW COLUMNS FROM 'tb_name';
例: mysql> DESCRIBE `tb1`; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | int(11) | YES | | NULL | | | name | varchar(20) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
删除数据表
DROP TABLE 'tablename';
单表中数据的增、删、查、改
INSERT 插入数据
方法一:
INSERT [INTO] table_name [(column_name,...)]
{VALUES|VALUE} ({expr|DEFAULT},...),(...),...;
方法二:
INSERT [INTO] tbl_name SET col_name={expr|DEFAULT},...;
例: mysql> INSERT INTO `tb1`(id,name) -> VALUES(1,'张三'), -> (2,'李四') -> ; Query OK, 2 rows affected (0.00 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> INSERT INTO tb1 SET id=3,name='王五'; Query OK, 1 row affected (0.01 sec)
SELECT 查询数据
SELECT * FROM tab_name [WHERE];
例: mysql> SELECT * FROM tb1; +------+--------+ | id | name | +------+--------+ | 1 | 张三 | | 2 | 李四 | +------+--------+ 2 rows in set (0.00 sec)
UPDATE 更新数据
UPDATE tb_name
SET col_name1={expr1|DEFAULT}[,col_name2={expr2|DEFAULT}]...
[WHERE where_condition];
#例:
mysql> SELECT * FROM tb1;
+------+--------+
| id | name |
+------+--------+
| 1 | 张三 |
| 2 | 李四 |
| 3 | 王五 |
| 3 | 赵六 |
+------+--------+
4 rows in set (0.00 sec)
mysql> UPDATE tb1
-> SET id=3;
Query OK, 4 rows affected (0.01 sec)
Rows matched: 4 Changed: 4 Warnings: 0
mysql> UPDATE tb1 SET id=1 WHERE name='张三';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> UPDATE tb1 SET name='佳能' WHERE id>1;
Query OK, 3 rows affected (0.10 sec)
Rows matched: 3 Changed: 3 Warnings: 0
DELETE 删除数据
DELETE FROM tbl_name [WHERE where_conditon];
不添加WHERE则会删除全部记录
#例:
mysql> SELECT * FROM tb1;
+------+--------+
| id | name |
+------+--------+
| 1 | 张三 |
| 3 | 佳能 |
| 3 | 佳能 |
| 3 | 佳能 |
+------+--------+
4 rows in set (0.00 sec)
mysql> DELETE FROM `tb1` WHERE id=3;
Query OK, 1 row affected (0.06 sec)
mysql> DELETE FROM `tb1`;
Query OK, 3 rows affected (0.13 sec)
mysql> SELECT * FROM `tb1`;
Empty set (0.00 sec)
mysql>
# mysql 数据类型
整型 浮点型 日期类型 字符型
mysql> create table tb2(
-> id INT,
-> name VARCHAR(20), #指定长度,最多65535个字符。 ***变长
-> sex CHAR(4), #指定长度,最多255个字符。 ***定长
-> price DOUBLE(4,2), #双精度浮点型,m总个数,d小数位
-> detail text, #可变长度,最多65535个字符
-> dates DATETIME, #日期时间类型 YYYY-MM-DD HH:MM:SS
-> ping ENUM('好评','差评') #枚举, 在给出的value中选择
-> );
insert into tb2 value( 1,'裤子','男',20.0,'这条裤子超级好!!!',now(),'好评');