MySQL数据库基本操作(一)

进入mysql

本地连接:
mysql -u用户名 -p
输入密码 qwe123

mysql -uroot -pqwe123      # 18

sudo apt-get install mysql-server     # p2 (没有装导入版的)

创建用户

#创建用户
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(),'好评');

作业:

建一张学生表 包含(id,姓名,年龄,性别)。
1.增加三条数据
2.查询所有数据
3.删除id =3的数据,
4.将性别为女的,修改为男

原文地址:https://www.cnblogs.com/woaixuexi9999/p/9220780.html