MySQL数据库

知识要点

  1. 进入mysql

  2. 创建/删除数据库

  3. 建表、删表

  4. 单表数据操作

进入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(),'好评');