MySQL基本用法


1. MySQL的程序组成


mysql程序分客户端和服务器端两种:

  • 客户端

    • mysql:CLI交互式客户端程序
    • mysql_secure_installation:安全初始化
    • mysqldump:mysql备份工具
    • mysqladmin:执行管理操作,可以用来检查服务器的配置和当前状态、创建和删除数据库等
  • 服务器端

    • mysqld:通过开启此程序,开启mysql

mysql工具用法:

语法:mysql [OPTIONS] [databases]

常用的OPTIONS:
-uUSERNAME    指定用户名,默认为root
-hHOST        指定服务器主机,默认为localhost
-pPASSWORD    指定用户的密码
-P#           指定数据监听的端口,#需用实际的端口号代替
-V            查看当前使用的mysql版本
-e            不登录mysql执行sql语句后退出

登录mysql:mysql -uroot -p123456 -h127.0.0.1

服务器监听的两种socket地址:

  • ip socket 默认监听在tcp3306端口,支持远程通信
  • unix sock 监听在sock文件(/tmp/mysql.sock,/var/lib/mysql/mysql.sock)上,仅支持本地通信,server地址只能为localhost,127.0.01

2. MySQL数据库操作


2.1 DLL操作

DDL操作包括定义数据库、表、列。create 创建show 查看drop 删除

2.1.1 数据库操作

  • 创建数据库
mysql> create database if not exists abc;
Query OK, 1 row affected (0.00 sec)
  • 查看MySQL服务器中有哪些数据库
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| abc                |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.09 sec)
  • 查看某个数据库的定义信息
mysql> show create database sys;
+----------+--------------------------------------------------------------+
| Database | Create Database                                              |
+----------+--------------------------------------------------------------+
| sys      | CREATE DATABASE `sys` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+--------------------------------------------------------------+
1 row in set (0.00 sec)
  • 查看建库语句
mysql> show create databases abc;
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 'databases abc' at line 1
mysql> show create database abc;
+----------+----------------------------------------------------------------+
| Database | Create Database                                                |
+----------+----------------------------------------------------------------+
| abc      | CREATE DATABASE `abc` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+----------------------------------------------------------------+
1 row in set (0.01 sec)
  • 删除数据库
mysql> drop database if exists abc;
Query OK, 0 rows affected (0.05 sec)
  • 切换数据库
mysql> use sys;
Database changed

2.1.2 表操作

  • 创建表
格式:create table 表名(字段名 类型 修饰符,字段名 类型 修饰符)

例:
mysql> use abc
Database changed
mysql> create table ggg(id int NOT NULL,name VARCHAR(100) NOT NULL,age tinyint);
Query OK, 0 rows affected (0.00 sec)
  • 查看当前数据库有哪些表
mysql> show tables;
+---------------+
| Tables_in_abc |
+---------------+
| ggg           |
+---------------+
1 row in set (0.00 sec)
  • 设定主键约束和自动递增创建表
mysql> create table abc(id int primary key auto_increment not null,name varchar(50) not null,age tinyint);
Query OK, 0 rows affected (0.03 sec)
//设定了主键约束的列,列中的字段只能出现一次。且必须提供数据,不能为空
//int为整数类型,primary key为主键,auto_increment为自动递增,not null表示不能为空,varchar为字符串类型,tinyint整数类型,值为0-255

mysql> desc abc;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| name  | varchar(50) | NO   |     | NULL    |                |
| age   | tinyint(4)  | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
  • 查看表结构
mysql> desc ggg;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(11)      | NO   |     | NULL    |       |
| name  | varchar(100) | NO   |     | NULL    |       |
| age   | tinyint(4)   | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
  • 查看建表语句
mysql> show create table ggg;
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                         |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------+
| ggg   | CREATE TABLE `ggg` (
  `id` int(11) NOT NULL,
  `name` varchar(100) NOT NULL,
  `age` tinyint(4) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
  • 删除表
mysql> drop table if exists ggg;
Query OK, 0 rows affected (0.01 sec)
  • 删除列
语法:alter TABLE 表名 DROP 列名;

mysql> alter table ggg drop age;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc ggg;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(11)      | NO   |     | NULL    |       |
| name  | varchar(100) | NO   |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
  • 修改表名
mysql> rename table ggg to heihei;
Query OK, 0 rows affected (0.00 sec)

mysql> show tables;
+---------------+
| Tables_in_abc |
+---------------+
| heihei        |
+---------------+
1 row in set (0.00 sec)
  • 修改列名
语法:alter TABLE 表名 CHANGE 列名 新列名 列类型;

mysql> alter table heihei change id num int;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc heihei;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| num   | int(11)      | YES  |     | NULL    |       |
| name  | varchar(100) | NO   |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.01 sec)
  • 修改表的字符集
语法:alter TABLE 表名 CHARACTER SET 字符集

mysql> alter table abc character set utf8;
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> SHOW CREATE TABLE abc;
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                    |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| abc   | CREATE TABLE `abc` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(100) CHARACTER SET latin1 DEFAULT NULL,
  `age` tinyint(4) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
  • 添加列
语法:alter table 表名 add 列名 列类型;

mysql> alter table heihei add age tinyint;
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc heihei;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| num   | int(11)      | YES  |     | NULL    |       |
| name  | varchar(100) | NO   |     | NULL    |       |
| age   | tinyint(4)   | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值