MySQL数据库的基本操作
1. 基本操作
1.1登录mysql
mysql -u【user】 -h【IP】 -P【port】 -p【password】
- -u【user】指定登录用户;
- 如果登录本机,-h和-P可以省略,默认端口号为3306;
- -p【password】填写登录密码,也可以忽略此项。
1.2 基本命令
显示所有数据库:SHOW DATABASES;
选定数据库:USE dbname;
显示当前数据库中所有表:SHOW TABLES;
显式指定数据库中的所有表:SHOW TABLES FROM dbname;
放弃正在输入的命令:\c
显示命令清单:\h
退出mysql程序:\q
查看MySQL服务器状态信息:\s
1.3 修改密码
mysqladmin -u[user] -p password
- 如果用户没有密码,则可以忽略-p参数
- 非root用户修改密码需要权限
1.4 创建用户
CREATE USER username IDENTIFIED BY 'password';
创建一个叫mike的用户密码为123456
例如:CREATE USER mike IDENTIFIED BY ‘123456’;将某个表的某些权限授权于某用户
GRANT SELECT,INSERT,UPDATA,DELETE ON tablename TO username;
- 将所有表的查询插入权限给予mike
例如:GRANT SELECT,INSERT ON *.* TO mike;
收回用户的权限
REVOKE SELECT,INSERT,UPDATA, DELETE ON tablename FROL user
- 收回mike的所有权限
例如:REVOKE ALL PRIVILEGES ON *.* FROM mike;
2.SQL语句分类
- SQL即Structured Query Language。
- SQL语句分为三类,DDL,DCL,DML
2.1 DDL( Data Definition Language数据定义语言)
- 用来建立数据库、数据库对象和定义其列;
- CREATE 、DROP 、ALTER 等;
2.2 DCL( Data Control Language数据控制语言)
- 用来控制存取许可、存取权限等;
- GRANT、REVOKE 等;
2.3 DML( Data Manipulation Language数据操作语言)
- 查询、插入、删除和修改数据库中的数据;
- SELECT、INSERT、 UPDATE 、DELETE等;
3. SQL语句的使用
3.1 创建一个数据库
CREATE DATABASE dbname [选项]
- 例如:创建一个叫menwen的数据库并设置为gbk字符编码
CREATE DATABASE menwen CHARACTER SET gbk;
- 查看刚创建的数据库信息
mysql> SHOW CREATE DATABASE menwen;
+----------+----------------------------------------------------------------+
| Database | Create Database |
+----------+----------------------------------------------------------------+
| menwen | CREATE DATABASE `menwen` /*!40100 DEFAULT CHARACTER SET gbk */ |
+----------+----------------------------------------------------------------+
1 row in set (0.00 sec)
- 修改数据库的字符编码设置
mysql> ALTER DATABASE menwen CHARACTER set utf8;
Query OK, 1 row affected (0.00 sec)
- 可以用刚才的SHOW CREATE DATABASE menwen查看gbk已经改为utf8;
menwen | CREATE DATABASE `menwen` /*!40100 DEFAULT CHARACTER SET utf8 */
3.2 表的CRUD操作
- 增加(Create)、查询(Retrieve)(重新得到数据)、更新(Update)和删除(Delete)
- 创建一个表(CREATE)
CREATE TABLE tablename();
例如:在menwen库中创建一个data表,有三列
CREATE TABLE menwen.data(
name varchar(20),
sex char(2),
num int );
查看创建的表之前必须前选中数据库
- 查看创建的表
mysql> SHOW TABLES;
+------------------+
| data |
+------------------+
- 显示表的结构
DESC(DESCRIBLE) tablename;
mysql> DESC data;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| sex | char(2) | YES | | NULL | |
| num | int(11) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
- 修改/删除/添加表结构
ALTER TABLE tablename MODIFY/DROP/ADD +字段
ALTER TABLE data MODIFY name varchar(10);
ALTER TABLE data DROP num;
- 删除一个表(DELETE)
DROP TABLE tablename;
- 向表里插入数据
INSERT INTO data()
例如:
insert into data(name, sex, num) values('mike', 'm', 9527);
insert into data values('mary', 'f', 9528);
insert into data(name, sex) values('jim', 'm');
- 查看表里的数据
SELECT * FROM tablename
例如:
mysql> SELECT * FROM data;
+------+------+------+
| name | sex | num |
+------+------+------+
| mike | m | 9527 |
| mary | f | 9528 |
| jim | m | NULL |
+------+------+------+
- 更新数据(UPDATE)
UPDATE tablename SET ×× WHERE ××;
例如:
UPDATE data SET num=9529 WHERE name='jim';
- 删除数据
DELETE FROM tablename WHERE ××;
例如:
DELETE FROM data WHERE sex='f';
DELETE FROM dat;//删除整张表的数据