MySQL数据库基本操作(一)
1. 进入mysql
2. 创建/删除数据库
3. 建表、删表
4. 单表数据操作
本地连接: 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
查看在哪个数据库里:
查看有哪些数据库:
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)
单表中数据的增、删、查、改
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)
例: mysql> SELECT * FROM tb1; +------+--------+ | id | name | +------+--------+ | 1 | 张三 | | 2 | 李四 | +------+--------+ 2 rows in set (0.00 sec)
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.将性别为女的,修改为男