命令行下对MySQL基础操作

  1. Windows下打开MySQL command line client --Unicode

MySQL command line client --Unicode与MySQL command line client区别:
Unicode是统一的字符编码标准,MySQL的Windows客户端自从5.6.2版本后提供了Unicode界面支持。而原来的MySQL Client是默认在dos下运行的,不够满足Windows下标准编码的需求。用起来也有感觉,在Unicode下运行速度比原来的在dos环境下运行要快得多,字体等也更符合编程要求(Unicode是用的16位储存和表示每个字符的,并能够表示大多数字符。

  1. 输入password
  2. SHOW DATABASES:
    列出 MySQL 数据库管理系统的数据库列表。
  3. USE 数据库名
  4. SHOW TABLES:
    显示指定数据库的所有表,使用该命令前需要使用 use 命令来选择要操作的数据库。
  5. SHOW COLUMNS FROM : 或者使用命令DESCRIBE 表名
    显示数据表的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息。
  6. SHOW INDEX FROM 表名:
    显示数据表的详细索引信息,包括PRIMARY KEY(主键)。
mysql> SHOW TABLE STATUS  FROM RUNOOB;   # 显示数据库 RUNOOB 中所有表的信息

mysql> SHOW TABLE STATUS from RUNOOB LIKE 'runoob%';     # 表名以runoob开头的表的信息
mysql> SHOW TABLE STATUS from RUNOOB LIKE 'runoob%'\G;   # 加上 \G,查询结果按列打印
  1. eixt;
    推出客户端
  2. 显示所用的用户
    在Mysql中其实有一个内置且名为mysql的数据库,这个数据库中存储的是Mysql的一些数据,比如用户、权限信息、存储过程等,所以呢,我们可以通过如下简单的查询语句来显示所有的用户呢。
    SELECT User, Host FROM mysql.user;
  3. 显示当前状态:status;包括当前用户信息
  4. 显示当前用户:select user();
  5. 创建数据库CREATE database sql_learning;
  6. 删除数据库DROP database sql_learning;
  7. 创建表示例:
mysql> use sql_learning;
Database changed
mysql> create table student(
    -> id int not null,
    -> name varchar(10) not null
    -> PRIMARY KEY (id),
    -> )engine=innodb default charset=utf8;
Query OK, 0 rows affected (0.75 sec)

mysql> describe student;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | NO   |     | NULL    |       |
| name  | varchar(10) | NO   |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
  • PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
  • ENGINE 设置存储引擎,CHARSET 设置编码。
    创建数据库表时数据存储引擎 engine两种:engine=innodb和engine=myisam
    • myisam,默认类型。是存储记录和文件的标准类型,支持全文搜索,可以被压缩,与其他引擎相比,有检查和修复表格的大部分工具,不支持事务,不支持外键。强调的是性能,执行速度比较快,可以在不同的系统中迁移。如果执行大量 的SELECT,MyISAM是更好的选择。
    • innodb,支持事务处理等高级处理,支持外键,如果执行大量的select和update语句,出于性能考虑,使用innodb是最好的选择。
  1. 删除表:DROP table student;
  2. 插入数据
INSERT INTO table_name ( field1, field2,...fieldN )
                       VALUES
                       ( value1, value2,...valueN );

插入数据示例:

mysql> insert into student
    -> (id,name)
    -> values
    -> (001,'qin');
Query OK, 1 row affected (0.05 sec)
mysql> insert into student
    -> (id,name)
    -> values
    -> (002,'hui');
Query OK, 1 row affected (0.06 sec)
mysql> insert into student
    -> (id,name)
    -> values
    -> (001,'dong');
Query OK, 1 row affected (0.05 sec)
mysql> select * from student;
+----+------+
| id | name |
+----+------+
|  1 | qin  |
|  2 | hui  |
|  1 | dong |
+----+------+
3 rows in set (0.00 sec)

插入多条数据:

INSERT INTO table_name  (field1, field2,...fieldN)  VALUES  (valueA1,valueA2,...valueAN),(valueB1,valueB2,...valueBN),(valueC1,valueC2,...valueCN)......;
mysql> insert into student
    -> (id,name)values
    -> (004,'wang'),
    -> (005,'xiao'),
    -> (006,'meng');
  1. 查询语句
SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[OFFSET M ][LIMIT N]

查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
SELECT 命令可以读取一条或者多条记录。
你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
你可以使用 WHERE 语句来包含任何条件。
你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。
你可以使用 LIMIT 属性来设定返回的记录数。

MySQL 的 WHERE 子句的字符串比较是不区分大小写的。 你可以使用 BINARY 关键字来设定 WHERE 子句的字符串比较是区分大小写的。

mysql> SELECT * from runoob_tbl WHERE BINARY runoob_author='runoob.com';
Empty set (0.01 sec)
 
mysql> SELECT * from runoob_tbl WHERE BINARY runoob_author='RUNOOB.COM';
+-----------+---------------+---------------+-----------------+
| runoob_id | runoob_title  | runoob_author | submission_date |
+-----------+---------------+---------------+-----------------+
| 3         | JAVA 教程   | RUNOOB.COM    | 2016-05-06      |
| 4         | 学习 Python | RUNOOB.COM    | 2016-03-06      |
+-----------+---------------+---------------+-----------------+
2 rows in set (0.01 sec)
  1. 修改更新数据
    UPDATE table_name SET field1=new-value1, field2=new-value2
    [WHERE Clause]
  2. 删除数据
    DELETE FROM table_name [WHERE Clause]
  3. 获取服务器元数据
    以下命令语句可以在 MySQL 的命令提示符使用,也可以在脚本中 使用,如PHP脚本.
命令 描述
SELECT VERSION( ) 服务器版本信息
SELECT DATABASE( ) 当前数据库名 (或者返回空)
SELECT USER( ) 当前用户名
SHOW STATUS 服务器状态
SHOW VARIABLES 服务器配置变量
  1. 自增auto_increment,其指定的属性无需赋值,设为null即可。
    例如属性id已经
INSERT INTO student (id,name) VALUES
    -> (NULL,'housefly');

重置序列
如果你删除了数据表中的多条记录,并希望对剩下数据的AUTO_INCREMENT列进行重新排列,那么你可以通过删除自增的列,然后重新添加来实现。 不过该操作要非常小心,如果在删除的同时又有新记录添加,有可能会出现数据混乱。操作如下所示:

mysql> ALTER TABLE student DROP id;
mysql> ALTER TABLE student
    -> ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST,
    -> ADD PRIMARY KEY (id);

设置序列开始值
mysql> CREATE TABLE student
-> (
-> id INT UNSIGNED NOT NULL AUTO_INCREMENT,
-> PRIMARY KEY (id),
-> name VARCHAR(30) NOT NULL,
)engine=innodb auto_increment=100 charset=utf8;

对于已经建立好的表,使用
mysql> ALTER TABLE t AUTO_INCREMENT = 100;

  1. 重复数据防止插入:设置指定的字段为 PRIMARY KEY(主键) 或者 UNIQUE(唯一) 索引来保证数据的唯一性。

INSERT IGNORE INTO与INSERT INTO区别:
INSERT INTO插入重复数据会出现错误
INSERT IGNORE INTO出现重复数据会自动忽略。并给出警告。

mysql> INSERT IGNORE INTO person_tbl (last_name, first_name)
    -> VALUES( 'Jay', 'Thomas');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT IGNORE INTO person_tbl (last_name, first_name)
    -> VALUES( 'Jay', 'Thomas');
Query OK, 0 rows affected (0.00 sec)
  1. mysql在创建表时,表名以及字段名可以不加引号,加引号的话要加反引号,即键盘数字1左边的符号,同时COMMENT的内容使用正常的引号或双引而不能使用反引号,因此有如下两种正确的创建方法
  • 表名和字段名不加引号
mysql> CREATE TABLE TB_IP_WHITELIST (
 id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
 productName VARCHAR(255) NOT NULL DEFAULT '' COMMENT '产品名',
 ipWhite TEXT NOT NULL COMMENT '白名单',
 remark VARCHAR(255) NOT NULL DEFAULT '' COMMENT '备注',
 UNIQUE KEY product_name (productName),
 PRIMARY KEY (id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT ='名单信息表';
  • 表名和字段名加反引号
mysql> CREATE TABLE `TB_IP_WHITELIST` (
  `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
  `productName` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '产品名',
  `ipWhite` TEXT NOT NULL COMMENT '白名单',
  `remark` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '备注',
  UNIQUE KEY `product_name` (`productName`),
  PRIMARY KEY (`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT ='名单信息表';
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345

推荐阅读更多精彩内容