MySQL学习笔记

MySQL学习笔记

基本信息

首先是安装MySQL 应用
网址:https://www.mysql.com/
首先确保MySQL服务已经打开
首先确保MySQL服务已经打开。
可以打开CMD命令的管理员模式通过 net start mysql 打开服务
或者net stop mysql关闭服务
MySQL登录命令 mysql -h[服务器名/localhost] -r[用户名] -p[登录密码]
可以用exit或者quit或者\q退出数据库
添加用户方法一:

root@host# mysql -u root -p
Enter password:*******
mysql> use mysql;
Database changed

mysql> INSERT INTO user 
          (host, user, password, 
           select_priv, insert_priv, update_priv) 
           VALUES ('localhost', 'guest', 
           PASSWORD('guest123'), 'Y', 'Y', 'Y');
Query OK, 1 row affected (0.20 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 1 row affected (0.01 sec)

mysql> SELECT host, user, password FROM user WHERE user = 'guest';
+-----------+---------+------------------+
| host      | user    | password         |
+-----------+---------+------------------+
| localhost | guest | 6f8c114b58f2ce9e |
+-----------+---------+------------------+
1 row in set (0.00 sec)

添加用户方法二:

root@host# mysql -u root -p
Enter password:*******
mysql> use mysql;
Database changed

mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
    -> ON TUTORIALS.*
    -> TO 'zara'@'localhost'
    -> IDENTIFIED BY 'zara123';

运用数据库:

use 数据库名称;

列出MySQL的数据库列表:

SHOW DATABASES: 

运行结果

显示指定数据库的所有表,使用该命令前需要使用 use 命令来选择要操作的数据库:

show tables;

结果:

mysql> use db1;
Database changed
mysql> show tables;
+---------------+
| Tables_in_db1 |
+---------------+
| employee      |
| student       |
| websites      |
+---------------+
3 rows in set (0.02 sec)

显示数据表的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息:

SHOW COLUMNS FROM 数据表;
mysql> SHOW COLUMNS FROM student;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int         | YES  | UNI | NULL    |       |
| name  | varchar(10) | YES  |     | NULL    |       |
| score | double(4,1) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)

显示数据表的详细索引信息,包括PRIMARY KEY(主键)。

SHOW INDEX FROM 数据表:
mysql> SHOW INDEX FROM student;
+---------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
| Table   | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible | Expression |
+---------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
| student |          0 | id       |            1 | id          | A         |           0 |     NULL |   NULL | YES  | BTREE      |         |               | YES     | NULL       |
+---------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
1 row in set (0.01 sec)

输出MySQL数据库管理系统性能及统计信息。

mysql> SHOW TABLE STATUS  FROM db1;   # 显示数据库 db1 中所有表的信息

mysql> SHOW TABLE STATUS from db1 LIKE 'student%';     # 表名以runoob开头的表的信息
mysql> SHOW TABLE STATUS from db1 LIKE 'student%'\G;   # 加上 \G,查询结果按列打印

  1. 新建数据库
create database <数据库名称>;
mysql> create database db2;
Query OK, 1 row affected (0.01 sec)
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| db1                |
| db2                |
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| world              |
+--------------------+
8 rows in set (0.00 sec)
mysql> create database db1;
ERROR 1007 (HY000): Can't create database 'db1'; database exists
出现相同名称则自动报错
  1. 新建表
CREATE TABLE table_name (column_name column_type);
mysql> create table teacher(name char(4),age int);
Query OK, 0 rows affected (0.12 sec)

mysql> show tables;
+---------------+
| Tables_in_db1 |
+---------------+
| employee      |
| student       |
| teacher       |
| websites      |
+---------------+
4 rows in set (0.01 sec)
  1. 增添数据
INSERT INTO table_name ( field1, field2,...fieldN )
                       VALUES
                       ( value1, value2,...valueN );
mysql> insert into student(id,name,score) values('5','zs',100.0);
Query OK, 1 row affected (0.00 sec)

mysql> select*from student;
+------+------+-------+
| id   | name | score |
+------+------+-------+
|    1 | d    |  90.0 |
|    5 | zs   | 100.0 |
+------+------+-------+
2 rows in set (0.00 sec)

  1. 删除数据库
drop database <数据库名>;
mysql> drop database db2;
Query OK, 0 rows affected (0.04 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| db1                |
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| world              |
+--------------------+
7 rows in set (0.00 sec)
  1. 删除表
DROP TABLE table_name ;
mysql> drop table teacher;
Query OK, 0 rows affected (0.04 sec)

mysql> show tables;
+---------------+
| Tables_in_db1 |
+---------------+
| employee      |
| student       |
| websites      |
+---------------+
3 rows in set (0.00 sec)
  1. 删除数据
DELETE FROM table_name [WHERE Clause]
mysql> DELETE FROM student where id=3 ;
Query OK, 1 row affected (0.01 sec)

mysql> select *from student;
+------+------+-------+
| id   | name | score |
+------+------+-------+
|    5 | zs   | 100.0 |
+------+------+-------+
1 row in set (0.00 sec)
删除所有数据
mysql> select *from student;
+------+------+-------+
| id   | name | score |
+------+------+-------+
|    5 | zs   | 100.0 |
|    2 | zs   | 100.0 |
|    1 | zs   | 100.0 |
+------+------+-------+
3 rows in set (0.00 sec)

mysql> DELETE FROM student ;
Query OK, 3 rows affected (0.01 sec)

mysql> select *from student;
Empty set (0.00 sec)

UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
mysql> update student set id=3 where id=1;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select *from student;
+------+------+-------+
| id   | name | score |
+------+------+-------+
|    3 | d    |  90.0 |
|    5 | zs   | 100.0 |
+------+------+-------+
2 rows in set (0.00 sec)

  1. 查询数据库
show databases;
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| db1                |
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| world              |
+--------------------+
7 rows in set (0.00 sec)
  1. 查询表
show tables;
mysql> show tables;
+---------------+
| Tables_in_db1 |
+---------------+
| employee      |
| student       |
| websites      |
+---------------+
3 rows in set (0.01 sec)
  1. 查询表数据
select *from <表名称>;
mysql> select*from student;
+------+------+-------+
| id   | name | score |
+------+------+-------+
|    1 | d    |  90.0 |
|    5 | zs   | 100.0 |
+------+------+-------+
2 rows in set (0.00 sec)
SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]
查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
SELECT 命令可以读取一条或者多条记录。
使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
使用 WHERE 语句来包含任何条件。
使用 LIMIT 属性来设定返回的记录数。
通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0
mysql> select id,name from student;
+------+------+
| id   | name |
+------+------+
|    1 | d    |
|    5 | zs   |
+------+------+
2 rows in set (0.00 sec)

mysql> select id,name from student where id=1;
+------+------+
| id   | name |
+------+------+
|    1 | d    |
+------+------+
1 row in set (0.00 sec)

like用法
SELECT field1, field2,...fieldN 
FROM table_name
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
union用法
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
UNION [ALL | DISTINCT]
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];
expression1, expression2, ... expression_n: 要检索的列。
order by 元素名称

tables: 要检索的数据表。
WHERE conditions: 可选, 检索条件。
DISTINCT: 可选,删除结果集中重复的数据。默认情况下 
UNION 操作符已经删除了重复数据,所以 DISTINCT 修饰符对结果没啥影响。
ALL: 可选,返回所有结果集,包含重复数据

排序

SELECT field1, field2,...fieldN FROM table_name1, table_name2...
ORDER BY field1 [ASC [DESC][默认 ASC]], [field2...] [ASC [DESC][默认 ASC]]

使用 ASCDESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列。

分组

SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;

数据类型:
数值类型
MySQL支持所有标准SQL数值数据类型。
这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。

日期和时间类型
表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。
每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。
TIMESTAMP类型有专有的自动更新特性。

字符串类型
字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。该节描述了这些类型如何工作以及如何在查询中使用这些类型。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nightelves11

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值