您现在的位置是:首页 >学无止境 >mysql学+练开始 mysql -uroot -p123456网站首页学无止境

mysql学+练开始 mysql -uroot -p123456

月升11 2024-07-01 11:59:42
简介mysql学+练开始 mysql -uroot -p123456

从开始到放弃!

开始

mysql -uroot -p123456

退出命令

exit 或者 quit

注释

# show databases; 单行注释
-- show databases; 单行注释
/*
多行注释
show databases;
*/

DDL操作数据库

创建

/*
方式1 直接指定数据库名进行创建
*/
CREATE DATABASE db1;
/*
方式2 指定数据库名称,指定数据库的字符集
一般都指定为 utf8
*/
CREATE DATABASE db1_1 CHARACTER SET utf8;
mysql> create database db1;
Query OK, 1 row affected (0.00 sec)

mysql> create database db1_1 character set utf8;
Query OK, 1 row affected (0.00 sec)

查看/选择数据库

命令 说明
use 数据库 切换数据库
select database(); 查看当前正在使用的数据库
show databases; 查看Mysql中 都有哪些数据库
show create database 数据库名; 查看一个数据库的定义信息

-- 切换数据库 从db1 切换到 db1_1
USE db1_1;
-- 查看当前正在使用的数据库
SELECT DATABASE();
-- 查看Mysql中有哪些数据库
SHOW DATABASES;
-- 查看一个数据库的定义信息
SHOW CREATE DATABASE db1_1;
mysql> use db1_1;
Database changed
mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| db1_1      |
+------------+
1 row in set (0.00 sec)

mysql> show create database db1_1;
+----------+----------------------------------------------------------------+
| Database | Create Database                                                |
+----------+----------------------------------------------------------------+
| db1_1    | CREATE DATABASE `db1_1` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+----------------------------------------------------------------+
1 row in set (0.00 sec)

修改数据库

命令说明
alter database 数据库名 character set 字符集数据库的字符集修改操作
-- 将数据库db1 的字符集 修改为 utf8
ALTER DATABASE db1 CHARACTER SET utf8;
-- 查看当前数据库的基本信息,发现编码已更改
SHOW CREATE DATABASE db1;
mysql> alter database db1 character set utf8;
Query OK, 1 row affected (0.00 sec
mysql> show create database db1;
+----------+--------------------------------------------------------------+
| Database | Create Database                                              |
+----------+--------------------------------------------------------------+
| db1      | CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+--------------------------------------------------------------+
1 row in set (0.00 sec)

删库跑路

-- 删除某个数据库
DROP DATABASE db1_1;
mysql> drop database db1_1;
Query OK, 0 rows affected (0.01 sec)

DDL操作数据表

常用的数据类型:
类型 描述
int 整型
double 浮点型
varchar 字符串型
date 日期类型,给是为 yyyy-MM-dd ,只有年月日,没有时分秒

注意:MySql中的 char类型与 varchar类型,区别在于:
char类型是固定长度的: 根据定义的字符串长度分配足够的空间。
varchar类型是可变长度的: 只使用字符串长度所需的空间

x char(10) 占用10个字节
y varchar(10) 占用3个字节

适用场景:
char类型适合存储 固定长度的字符串,比如 密码 ,性别一类
varchar类型适合存储 在一定范围内,有长度变化的字符串
存储空间 查询效率
char 耗费空间 高
varchar 节省空间 不高

创建表

语法

CREATE TABLE 表名(
字段名称1 字段类型(长度),
字段名称2 字段类型 注意 最后一列不要加逗号
)
mysql> create table category(
    -> cid int,
    -> cname varchar(20)
    -> );
Query OK, 0 rows affected (0.01 sec)

快速创建一个表结构相同的表(复制表结构)`

create table 新表名 like 旧表名;
mysql> create table test2 like test1;
Query OK, 0 rows affected (0.01 sec)

查看表

命令 说明
show tables; 查看当前数据库中的所有表名
desc 表名; 查看数据表的结构

mysql> show tables;
+---------------+
| Tables_in_db1 |
+---------------+
| category      |
| test1         |
| test2         |
+---------------+
3 rows in set (0.00 sec)
mysql> desc category;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| cid   | int(11)     | YES  |     | NULL    |       |
| cname | varchar(20) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
mysql> show create table category;
+----------+---------------------------------------------------------------------------------------------------------------------------------+
| Table    | Create Table                                                                                                                    |
+----------+---------------------------------------------------------------------------------------------------------------------------------+
| category | CREATE TABLE `category` (
  `cid` int(11) DEFAULT NULL,
  `cname` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+----------+---------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

删除表

命令 说明
drop table 表名; 删除表(从数据库中永久删除某一张表)
drop table if exists 表名; 判断表是否存在, 存在的话就删除,不存在就不执行删除

mysql> drop table test1;
Query OK, 0 rows affected (0.00 sec)
mysql> drop table if exists test2;
Query OK, 0 rows affected (0.00 sec)
mysql> rename table category1 to category;
Query OK, 0 rows affected (0.01 sec)

mysql> alter table category add cdesc varchar(20);
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> alter table category modify cdesc varchar(50);
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

整体作业练习

mysql> create database test charset='utf8';
Query OK, 1 row affected (0.01 sec)

mysql> use test;
Database changed
mysql> create table goods(
    -> id int auto_increment primary key not null,
    -> name varchar(50) not null
    -> );
Query OK, 0 rows affected (0.04 sec)

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| goods          |
+----------------+
1 row in set (0.00 sec)

mysql> insert into goods values(0,'大豆'),(0,'玉米'),(0,'花生'),(0,'小麦');;             -> insert into goods values(0,'大豆'),(0,'玉米'),(0,'花生'),(0,'小麦');
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';;
insert into goods values(0,'大豆'),(0,'玉米'),(0,'花生'),(0,'小麦' at line 1
mysql> insert into goods values(0,'大豆'),(0,'玉米'),(0,'花生'),(0,'小麦');         Query OK, 4 rows affected (0.03 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from goods;
+----+--------+
| id | name   |
+----+--------+
|  1 | 大豆   |
|  2 | 玉米   |
|  3 | 花生   |
|  4 | 小麦   |
+----+--------+
4 rows in set (0.00 sec)

mysql> update goods set name='紫薯' where id=4;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from goods;
+----+--------+
| id | name   |
+----+--------+
|  1 | 大豆   |
|  2 | 玉米   |
|  3 | 花生   |
|  4 | 紫薯   |
+----+--------+
4 rows in set (0.00 sec)

mysql> delete from goods where id=4;
Query OK, 1 row affected (0.00 sec)

mysql> select *  from goods where id=4;
Empty set (0.00 sec)
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。