我的MySQL笔记 - Day01
目录
前言
笔记来源: B站老杜MySQL入门
以下笔记内容源自视频+个人感悟理解,有问题可在评论区提出
新人第一次写博客,手下留情!!
一、MySQL常用命令
1. 关于SQL语句的分类?
DQL:
数据查询语言(凡是带有select关键字的都是查询语句)
select...
DML:
数据操作语言(凡是对表当中的数据进行增删改的都是DML)
insert 增
delete 删
update 改
这个主要是操作表中的数据data。
DDL:
数据定义语言
凡是带有create、drop、alter的都是DDL。
DDL主要操作的是表的结构。不是表中的数据。
create:新建,等同于增
drop:删除
alter:修改
这个增删改和DML不同,这个主要是对表结构进行操作。
TCL:
事务控制语言
包括:
事务提交:commit;
事务回滚:rollback;
DCL:
数据控制语言。
例如:授权grant、撤销权限revoke....
2. 登录MySQL
(1)mysql -u root -p+密码;
(2)mysql -u root -p;
3. 创建数据库
mysql> create database database_name;
Query OK, 1 row affected (2.82 sec)
4. 查看所在数据库服务器下存储的数据库
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.01 sec)
5. 查看当前use的数据库
mysql> select database();
+-------------+
| database() |
+-------------+
| mysql |
+-------------+
1 row in set (0.00 sec)
6.使用(use)某一数据库
mysql> use mysql;
Database changed
7.查看当前使用的数据库下的数据表
(这里拿MySQL自带的数据表示例)
mysql> show tables;
+------------------------------------------------------+
| Tables_in_mysql |
+------------------------------------------------------+
| columns_priv |
| component |
| db |
| default_roles |
| engine_cost |
| func |
| general_log |
| global_grants |
| gtid_executed |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| innodb_index_stats |
| innodb_table_stats |
| ndb_binlog_index |
| password_history |
| plugin |
| procs_priv |
| proxies_priv |
| replication_asynchronous_connection_failover |
| replication_asynchronous_connection_failover_managed |
| replication_group_configuration_version |
| replication_group_member_actions |
| role_edges |
| server_cost |
| servers |
| slave_master_info |
| slave_relay_log_info |
| slave_worker_info |
| slow_log |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+------------------------------------------------------+
38 rows in set (0.01 sec)
8.查看某一数据库下的数据表
mysql> show tables from bjpowernode;
+-----------------------+
| Tables_in_bjpowernode |
+-----------------------+
| dept |
| emp |
| salgrade |
+-----------------------+
3 rows in set (0.00 sec)
9.查看数据库版本号
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.31 |
+-----------+
1 row in set (1.74 sec)
10.向某一个数据库导入某一份数据库.sql文件
mysql> use 某一数据库库名
mysql> source D:\course\03-MySQL\document\xxx.sql
Tips:注意!!路径中不要有中文!!!
11.查看数据表中的数据
语法格式:
select * from 表名;
示例:
mysql> use 某一数据库库名
mysql> source D:\course\03-MySQL\document\xxx.sql
Tips:注意!!路径中不要有中文!!!
12.查看数据表的结构
语法格式:
desc 表名;
示例:
mysql> desc dept;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| DEPTNO | int | NO | PRI | NULL | |
| DNAME | varchar(14) | YES | | NULL | |
| LOC | varchar(13) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)
13.终止某一SQL语句的执行
命令前提:注意!!MySQL是不见";“不执行,”;"表示终止!
“\c” 可终止SQL语句的执行!
示例:
mysql> show
->
-> \C
mysql>
14.退出MySQL
可使用\q、quit、exit进行退出mysql:
示例:
mysql> \q
Bye
D:\mysql\bin>
二、简单查询
1.查询某个字段下的数据:
语法格式:
select 字段名 from 表名;
示例:查询思路:
mysql> desc dept; //可以看到表dept下有DEPTNO、dname、LOC三个字段
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| DEPTNO | int | NO | PRI | NULL | |
| DNAME | varchar(14) | YES | | NULL | |
| LOC | varchar(13) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
mysql> select LOC from dept; //我们对LOC字段进行查询该字段下的数据
+----------+
| LOC |
+----------+
| NEW YORK |
| DALLAS |
| CHICAGO |
| BOSTON |
+----------+
4 rows in set (0.00 sec)
mysql> select * from dept; //查询dept表下的数据,可以看到我们单一查询的LOC字段数据相符
+--------+------------+----------+
| DEPTNO | DNAME | LOC |
+--------+------------+----------+
| 10 | ACCOUNTING | NEW YORK |
| 20 | RESEARCH | DALLAS |
| 30 | SALES | CHICAGO |
| 40 | OPERATIONS | BOSTON |
+--------+------------+----------+
4 rows in set (0.00 sec)
2.查询两个字段或多个字段
语法格式:
select 字段1,字段2... from 表名;
示例:查询DEPTNO,LOC字段:
mysql> select DEPTNO,LOC from dept;
+--------+----------+
| DEPTNO | LOC |
+--------+----------+
| 10 | NEW YORK |
| 20 | DALLAS |
| 30 | CHICAGO |
| 40 | BOSTON |
+--------+----------+
4 rows in set (0.00 sec)
3.查询数据表的所有字段
方法一:可以把每个字段都写上
select 字段1,字段2,字段3,字段4... from 表名;
方法二:可以用 * 号
select * from 表名;
方法二缺点全览:
1.代码效率低,例如在java中运行此语句时会先将*号转化成字段名
2.可读性差
*在DOS命令窗口中想快速看看全表数据,可以采用
4.给查询字段起别名
示例:给dname字段起别名deptname
mysql> select dname as deptname from dept;
+------------+
| deptname |
+------------+
| ACCOUNTING |
| RESEARCH |
| SALES |
| OPERATIONS |
+------------+
4 rows in set (0.00 sec)
启示:使用as关键字起别名。
注意:只是将显示的查询结果列名显示为deptname,原表列名还是叫:dname
记住:select语句永远都不会进行修改操作。(因为只负责查询)
as关键字可被省略:
mysql> select dname deptname from dept;
别名中间若需加空格或设置别名为中文,可给别名用 " " 或 ’ ’ 括起来
(1)mysql> select dname "deptname" from dept;//加双引号
(2)mysql> select dname 'deptname' from dept;//加单引号
Tips:在所有数据库中,字符串统一使用单引号括起来,双引号在oracle数据库中无法使用
5.通过SQL语句进行数据运算
项目案例:计算员工年薪:
mysql> select ename,sal from emp; //查看员工月薪(ename为员工名)
+--------+---------+
| ename | sal |
+--------+---------+
| SMITH | 800.00 |
| ALLEN | 1600.00 |
| WARD | 1250.00 |
| JONES | 2975.00 |
| MARTIN | 1250.00 |
| BLAKE | 2850.00 |
| CLARK | 2450.00 |
| SCOTT | 3000.00 |
| KING | 5000.00 |
| TURNER | 1500.00 |
| ADAMS | 1100.00 |
| JAMES | 950.00 |
| FORD | 3000.00 |
| MILLER | 1300.00 |
+--------+---------+
14 rows in set (0.00 sec)
mysql> select ename,sal*12 from emp; //计算员工年薪:sal*12
+--------+----------+
| ename | sal*12 |
+--------+----------+
| SMITH | 9600.00 |
| ALLEN | 19200.00 |
| WARD | 15000.00 |
| JONES | 35700.00 |
| MARTIN | 15000.00 |
| BLAKE | 34200.00 |
| CLARK | 29400.00 |
| SCOTT | 36000.00 |
| KING | 60000.00 |
| TURNER | 18000.00 |
| ADAMS | 13200.00 |
| JAMES | 11400.00 |
| FORD | 36000.00 |
| MILLER | 15600.00 |
+--------+----------+
14 rows in set (0.13 sec)
mysql> select ename,sal*12 as yearsal from emp; //现学现用,给年薪起别名:yearsal
+--------+----------+
| ename | yearsal |
+--------+----------+
| SMITH | 9600.00 |
| ALLEN | 19200.00 |
| WARD | 15000.00 |
| JONES | 35700.00 |
| MARTIN | 15000.00 |
| BLAKE | 34200.00 |
| CLARK | 29400.00 |
| SCOTT | 36000.00 |
| KING | 60000.00 |
| TURNER | 18000.00 |
| ADAMS | 13200.00 |
| JAMES | 11400.00 |
| FORD | 36000.00 |
| MILLER | 15600.00 |
+--------+----------+
14 rows in set (0.00 sec)