mysql-210711-01
- 登录 / 退出MySQL
- 修改密码
- SQL、DB、DBMS理解
- 表的理解
- SQL语句分类(增删查改)
- 导入数据
- 导入数据报错
- 查看表结构和表中数据
- 表中数据
- 常用命令
登录mysql
命令行
mysql -r账户 -p密码
退出mysql
exit
修改密码
方法1: 用SET PASSWORD命令
首先登录MySQL。
格式:mysql> set password for 用户名@localhost = password('新密码');
例子:mysql> set password for root@localhost = password('123');
方法2:用mysqladmin
格式:mysqladmin -u用户名 -p旧密码 password 新密码
例子:mysqladmin -uroot -p123456 password 123
方法3:用UPDATE直接编辑user表
首先登录MySQL。
mysql> use mysql;
mysql> update user set password=password('123') where user='root' and host='localhost';
mysql> flush privileges;
方法4:在忘记root密码的时候,可以这样
以windows为例:
1. 关闭正在运行的MySQL服务。
2. 打开DOS窗口,转到mysql\bin目录。
3. 输入mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。
4. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。
5. 输入mysql回车,如果成功,将出现MySQL提示符 >。
6. 连接权限数据库: use mysql; 。
6. 改密码:update user set password=password("123") where user="root";(别忘了最后加分号) 。
7. 刷新权限(必须步骤):flush privileges; 。
8. 退出 quit。
9. 注销系统,再进入,使用用户名root和刚才设置的新密码123登录。
SQL、DB、DBMS理解
DB:
DataBase 数据库,数据库实际上在硬盘上以文件的形式存在
DBMS:
DataBase Management System 数据库管理系统,如:MySQL,Oracle,DB2,Sybase,SqlServer...
SQL:
结构化查询语言,是一门标准通用语言。标准的sql适合于所有的数据库产品。
SQL属于高级语言,
SQL语句在执行的时候,实际上内部也会先进行编译,然后在执行sql(sql语句的编译由DBMS完成)。
关系:
DBMS负责执行sql语句,通过执行sql语句来操作DB当中的数据
DBMS---(执行)--->SQL---(操作)--->DB
表的理解
table 是数据库的基本组成单元,所有的数据都以表格的形式组织,目的是可读性强
一个表包含行,列
行 称为数据/记录(data)
列 称为字段(column)
每一个字段应该包含哪些数据类型???
字段名、数据类型、相关的约束
SQL语句分类(增删查改)
DQL(数据查询语言):
查询语句,有select的语句都是DQL
DML(数据操作语言):
insert、delete、update,对表中的数据增删改
DDL(数据定义语言):
create、drop、alter,对表结构的增删改
TCL(事务控制语言):
commit提交事务、rollback回滚事务
Transaction Controll Language
DCL(数据控制语言):
grant授权、revoke撤销权限......
导入数据
1. 登录mysql
mysql -uroot - proot
2. 查看有哪些数据库
// 这个不是SQL语句,属于MySQL命令
show database;
3. 创建数据库
// 这个不是SQL语句,属于MySQL命令
create database mysql_test_210711_01;
4. 使用mysql_test_210711_01数据
// 这个不是SQL语句,属于MySQL命令
use mysql_test_210711_01;
5. 显示当前使用的数据库mysql_test_210711_01中的表
// 这个不是SQL语句,属于MySQL命令
show tables;
6. 初始化数据
source 路径\***.sql
7. 删除数据库
drop database mysql_test_210711_01;
导入数据报错
Failed to open file 'xxx.sql', error: 2
把sql脚本放在没有中文的目录下,重新导入 source 路径\***.sql
查看表结构和表中数据
mysql> show tables;
+--------------------------------+
| Tables_in_mysql_test_210711_01 |
+--------------------------------+
| dept | 部门表
| emp | 员工表
| salgrade | 工资等级表
+--------------------------------+
3 rows in set (0.00 sec)
desc dept;
查看表结构
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.00 sec)
mysql> desc emp;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| EMPNO | int | NO | PRI | NULL | | 员工编号
| ENAME | varchar(10) | YES | | NULL | | 员工姓名
| JOB | varchar(9) | YES | | NULL | | 工作岗位
| MGR | int | YES | | NULL | | 上级领导编号
| HIREDATE | date | YES | | NULL | | 入职日期
| SAL | double(7,2) | YES | | NULL | | 月薪
| COMM | double(7,2) | YES | | NULL | | 补助/津贴
| DEPTNO | int | YES | | NULL | | 部门编号
+----------+-------------+------+-----+---------+-------+
8 rows in set (0.00 sec)
mysql> desc salgrade;
+-------+------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------+------+-----+---------+-------+
| GRADE | int | YES | | NULL | | 等级
| LOSAL | int | YES | | NULL | | 最低薪资
| HISAL | int | YES | | NULL | | 最高薪资
+-------+------+------+-----+---------+-------+
3 rows in set (0.00 sec)
表中数据
mysql> select * from emp;
+-------+--------+-----------+------+------------+---------+---------+--------+
| EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO |
+-------+--------+-----------+------+------------+---------+---------+--------+
| 7369 | SMITH | CLERK | 7902 | 1980-12-17 | 800.00 | NULL | 20 |
| 7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 | 1600.00 | 300.00 | 30 |
| 7521 | WARD | SALESMAN | 7698 | 1981-02-22 | 1250.00 | 500.00 | 30 |
| 7566 | JONES | MANAGER | 7839 | 1981-04-02 | 2975.00 | NULL | 20 |
| 7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 | 1250.00 | 1400.00 | 30 |
| 7698 | BLAKE | MANAGER | 7839 | 1981-05-01 | 2850.00 | NULL | 30 |
| 7782 | CLARK | MANAGER | 7839 | 1981-06-09 | 2450.00 | NULL | 10 |
| 7788 | SCOTT | ANALYST | 7566 | 1987-04-19 | 3000.00 | NULL | 20 |
| 7839 | KING | PRESIDENT | NULL | 1981-11-17 | 5000.00 | NULL | 10 |
| 7844 | TURNER | SALESMAN | 7698 | 1981-09-08 | 1500.00 | 0.00 | 30 |
| 7876 | ADAMS | CLERK | 7788 | 1987-05-23 | 1100.00 | NULL | 20 |
| 7900 | JAMES | CLERK | 7698 | 1981-12-03 | 950.00 | NULL | 30 |
| 7902 | FORD | ANALYST | 7566 | 1981-12-03 | 3000.00 | NULL | 20 |
| 7934 | MILLER | CLERK | 7782 | 1982-01-23 | 1300.00 | NULL | 10 |
+-------+--------+-----------+------+------------+---------+---------+--------+
14 rows in set (0.00 sec)
mysql> select * from dept;
+--------+------------+----------+
| DEPTNO | DNAME | LOC |
+--------+------------+----------+
| 10 | ACCOUNTING | NEW YORK |
| 20 | RESEARCH | DALLAS |
| 30 | SALES | CHICAGO |
| 40 | OPERATIONS | BOSTON |
+--------+------------+----------+
4 rows in set (0.00 sec)
mysql> select * from salgrade;
+-------+-------+-------+
| GRADE | LOSAL | HISAL |
+-------+-------+-------+
| 1 | 700 | 1200 |
| 2 | 1201 | 1400 |
| 3 | 1401 | 2000 |
| 4 | 2001 | 3000 |
| 5 | 3001 | 9999 |
+-------+-------+-------+
5 rows in set (0.00 sec)
常用命令
// 查看当前使用数据库
mysql> select database();
// 查看当前数据库版本
mysql> select version();
// 结束一条语句
\c 或者 Ctrl+c
// 退出数据库
exit \q quit
// 查看当前数据库中的中
show tables;
// 查看其它库中的表
show tables from (数据库名);
show tables from test;
// 查看表结构
desc dept;
// 查看表的创建语句
show create table (表名);
show create table emp;