mysql %3e -u -r_MySQL快速入门(上)

前言

参考原文链接,本文是我边看原文学习,边摘抄写出来的。。。

http://mysql.phpxy.com/

看完上篇,看下篇。因为简书有内容长度限制,一篇实在写不完。

MySQL快速入门(下)

不到万不得已就将就着看本文吧,别看原文了.错别字多就算了,到后面还有还多语句的示例代码都张冠李戴了.当然,本文可能亦有错误,可以联系指正,不胜感激。

阅读本文前如果您了解常用的命令行操作会更加得心应手。什么都不会的也不行啊,至少你要会装好MySQL啊。知道怎么在MySQL中输入命令啊。不会的自己去学,上面原文链接里也有讲,自己看看吧。

数据库的连接登录

musql -h localhost -u root -p

参数说明:

参数

说明

-h

表示数据库的连接地址,如果是本机就可以省略

-u

表示指定要登录的用户

-p

表示使用密码登录

注:通常是在回车之后,输入密码。因为,密码输入时的字符是不可见的,输完密码直接回车登录。防止旁边有人把重要的密码看走。

看到命令行出现

mysql>

则说明登录成功,已经进入了MySQL的数据库程序,mysql > 表示等待输入指令。

在登陆成功后有这么一句提示,可能大家不太理解:

Your MySQL connection id is 7

表示第7次连接登陆,每登陆一次这个id为加1。下一次显示的会是第8次。

数据库操作

创建数据库

create database DB_MUMU;

创建一个名为DB_MUMU的数据库,注意语句以;结尾。不出意外的话终端中可以看到:

> mysql> create database DB_MUMU;

Query OK, 1 row affected (0.01 sec)

“Query OK” 表示上面的命令执行成功,所有的 DDL 和 DML(不包 括 SELECT)操作执行成功后都显示“Query OK”,这里理解为执行成功就可以了;“1 row affected” 表示操作只影响了数据库中一行的记录,“0.00 sec”则记录了操作执行的时间。

如果要新创建的数据库已经存在的话,将会提示:

mysql> create database DB_MUMU;

ERROR 1007 (HY000): Can’t create database ‘DB_MUMU’; database exists

查看数据库

show databases;

值得注意的是databases应该是+s的复数形式。用单数还是复数形势具体情况按照英语语法写就行了。比如数据库系统的用户信息就保存在mysql数据库的user表中。

如下图所示,执行本操作后可以看到存在的数据库。有几个是MySQL自己创建的,用来管理数据库系统。

4557783b69c9?from=singlemessage

show databases

选中数据库

mysql> use DB_MUMU;

Database changed

这样就进入到了 DB_MUMU数据库中了。当然你可以使用 use 语句随时切换要操作的数据库,刚刚选中了DB_MUMU ,现在我们切换到mysql内容的 mysql 数据库看看:

mysql> use mysql;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

出现 ” Database changed“ 表示切换成功。

查看数据库中的表

进入到库后我们可以看这个库里面有多少个数据表。

show tables;

使用use 进入到某个数据库后才可以使用show tables

示例,查看mysql数据库的表:

4557783b69c9?from=singlemessage

show tables;

这些表里面的内容是关系数据库服务器相关的用户、权限、数据库状态、设置等相关的信息数据。

删除数据库

drop database 库名;

注意:

drop 是汉语可以翻译为指掉下来,不要了的意思

database 是指库

库名 是指要删掉的库的名称

示例:

mysql> drop database liwenkai;

Query OK, 0 rows affected (0.01 sec)

【切记】注:数据库删除后,下面的所有数据都会全部删除,所以删除前一定要慎重并做好相应的备份。

数据表操作

创建表

create table 表名(字段名1 字段类型,…字段名n 字段类型n); //语法

create table user(username varchar(20),password varchar(32)); //示例

//创建一个表名叫user的表,第一个字段为username、表的字段类型为varchar长度为32个长度。第二个字段为password,类型也为varchar,长度也为32个长度。

可以在类型后接上长度如:varchar(20)。

字符数据类型后面碰到再说吧。

mysql> create table emp(

ename varchar(10),

hiredate date,

sal float(10,2),

deptno int(2)

);

Query OK, 0 rows affected (0.63 sec)

mysql> create table dept( deptno int(4), deptname varchar(20));

Query OK, 0 rows affected (0.12 sec)

查看表字段结构信息

desc 表名;

desc table;

//查看table表的表结构。

操作显示如下:(好吧,这段操作效果是抄的。)

mysql> desc table;

±---------±--------------±-----±----±--------±------+

| Field | Type | Null | Key | Default | Extra |

±---------±--------------±-----±----±--------±------+

| ename | varchar(10) | YES | | NULL | |

| hiredate | date | YES | | NULL | |

| sal | decimal(10,2) | YES | | NULL | |

| deptno | int(2) | YES | | NULL | |

±---------±--------------±-----±----±--------±------+

4 rows in set (0.39 sec)

//出现的不是一模一样的字段结构信息很正常,只是做个示例而已。不必在意。弄懂每个SQL语句的含义和作用就行了。

查看表的创建语句

好吧,看到这个标题我也一知半解的。继续往下看吧。

类别

详细解释

基本语法

show create table 表名 \G;

示例语句

show create table emp \G;

示例说明

查看表emp的创建语句

本来人家资料上,每个语句都是用这种表格解释的,我嫌繁琐。前面的没用,到这里越来越觉得这个表格解释很有必要。从这里开始用这种表格啦。emp是表名,之前上个原文本来也是emp但是被我强行改成了table,结果看吧。到这里如果还用table作表名的话,SQL语句中就会出现两个table单词,容易让大家搞混了。

执行完整示例:

mysql> show create table emp \G; //别问我这个G什么鬼,后面解释。

Table: emp //嗯,表名emp,我也不知道为啥叫emp。反正就起了这么个名字。

Create Table: CREATE TABLE emp (

ename varchar(10) DEFAULT NULL,

hiredate date DEFAULT NULL,

sal decimal(10,2) DEFAULT NULL,

deptno int(2) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8; //这些就是创建这张表的时候的语句。后面的引擎和字符集再说

1 row in set (0.00 sec)

ERROR:

No query specified

可以看到表定义以外,还可以看到表的 engine(存储引擎) 和 charset(字符集)等信息。“\G”选项的含义是使得记录能够按照字段竖着排列,对于内 容比较长的记录更易于显示。那也就是说只要你屏幕足够宽,不觉得看着不舒服的话可以不加 \G 选项咯。

嗯,这个命令可以用来这个表是怎么建的,主要有哪些字段,对应字段的数据类型。

删除表

类别

详解

基本语法

drop table 表名;

语法示例

drop table emp;

示例说明

删除emp这张表

mysql> drop table emp;

Query OK, 0 rows affected (0.34 sec)

注:删除表。表和数据均会丢失,请勿必删除重要表之前备份数据。

指定表引擎和字符集

指定表引擎

什么是表引擎??先不管,有兴趣在谷歌了解吧。

在创建表最后,我们常用MyISAM或者InnoDB引擎。在指定引擎时,我们可以使用:

ENGINE=InnoDB

这还用说吗?上一条命令查看表的创建语句的显示结果代码里就有啊。没看懂?

指定表默认字符集:

DEFAULT CHARSET=utf8

震惊!utf8居然没有-。。。不是UTF-8吗??大小写不照顾也就算了。连-都丢了。

谔谔,这。为什么都用过了删除表命令才介绍指定表引擎和字符集的语句呢。。有点儿马后炮吧。应该放在创建表的时候一起说啊。。

表操作完了。。。下面是数据字段操作。。。

数据字段操作

假设我们存在user表,user结构如下:

mysql> desc user;

±---------±--------------±-----±----±--------±------+

| Field | Type | Null | Key | Default | Extra |

±---------±--------------±-----±----±--------±------+

| username | varchar(10) | YES | | NULL | |

| password | varchar(32) | YES | | NULL | |

| createtime | int(10) | YES | | NULL | |

| createip | int(10) | YES | | NULL | |

±---------±--------------±-----±----±--------±------+

4 rows in set (0.01 sec)

//都看到这一步啦,多余的话也不用说啦。直接上代码应该都懂什么意思吧。要还真不懂说明没好好看。自己从头再来吧。

修改表字段类型modify

类别

详解

基本语法

alter table 表名 modify 字段名 varchar(20);

代码示例

alter table user modify username varchar(20);

示例说明

将user表的username的类型改为varchar(20)

可以把这个alter理解成类似于use把。选定数据库的时候是use 数据库名;

alter就是选定表。

4557783b69c9?from=singlemessage

修改表字段类型modify

哈哈哈,用了这么多年还是觉得QQ的截图功能真好用。。

执行结果:

mysql> alter table user modify username varchar(20);

Query OK, 0 rows affected (0.48 sec)

Records: 0 Duplicates: 0 Warnings: 0

不得不说其实这个执行结果没啥好看的,但是还得要有。

再来看一眼,确认这个字段被改过来了。。😄

再用desc看一眼确定改过来没。

mysql> desc user;

±---------±--------------±-----±----±--------±------+

| Field | Type | Null | Key | Default | Extra |

±---------±--------------±-----±----±--------±------+

| username | varchar(20) | YES | | NULL | |

| password | varchar(32) | YES | | NULL | |

| createtime | int(10) | YES | | NULL | |

| createip | int(10) | YES | | NULL | |

±---------±--------------±-----±----±--------±------+

4 rows in set (0.01 sec)

增加表字段

类别

详解

基本语法

alter table 表名 add column 字段名 类型;

代码示例

alter table user add column age int(3);

实例说明

添加一个叫做age的字段,类型是长度为3的整型

单词column意思是“列”,嗯,这也没毛病,整个数据库中只要记住column是列,然后“列”是字段即可。int(3):长度为3的整型?那就是说范围只能是-999~999了吧。

mysql> alter table emp add column age int(3);

Query OK, 0 rows affected (0.40 sec)

Records: 0 Duplicates: 0 Warnings: 0

再用desc看一眼,确定改过来了。谔谔,略有点强迫症吧。非要看一眼,系统都说了Query OK了啊。那行,看看吧,看看吧。看看也无妨。

mysql> desc user;

±---------±--------------±-----±----±--------±------+

| Field | Type | Null | Key | Default | Extra |

±---------±--------------±-----±----±--------±------+

| username | varchar(20) | YES | | NULL | |

| password | varchar(32) | YES | | NULL | |

| createtime | int(10) | YES | | NULL | |

| createip | int(10) | YES | | NULL | |

| age | int(3) | YES | | NULL | |

±---------±--------------±-----±----±--------±------+

5 rows in set (0.00 sec)

我就觉得这没啥好看的。直接就复制粘贴了。。。

下一个语句:

增加字段时控制字段顺序

类别

详解

基本语法

ALTER TABLE 表名 ADD 字段名 字段类型 AFTER 字段名;

代码示例

ALTER TABLE user ADD email VARCHAR(60) AFTER createip;

示例说明

在user表中,在字段creatip后面增加email字段,类型长度为60的varchar

刚刚学了增加字段。如果你仔细实验发现每次都是增加在最后面,如何在第一个增加或者在指字字段之后增加呢?

嗯,这倒是真的。

类别

详解

基本语法

ALTER TABLE 表名 ADD 字段名 字段类型 AFTER 字段名;

代码示例

ALTER TABLE user ADD email VARCHAR(60) AFTER createip;

示例说明

在user表中,在字段creatip后面增加email字段,类型长度为60的varchar

类别

详解

基本语法

ALTER TABLE 表名 ADD 字段名 字段类型;

代码示例

ALTER TABLE user ADD id INT(10) FIRST;

示例说明

在user表中在开始,就是最开头那一端头子上增加字段id,长度为10的整型。

我说怎么乍一看两个表格,之前都是一个表格啊。原来是分了两种情况啊。嗯,挺合理的。还有,这么怎么莫名其妙改用大写了。

ALTER TABLE user ADD email VARCHAR(60) AFTER createip;

Query OK, 0 rows affected (0.40 sec)

Records: 0 Duplicates: 0 Warnings: 0

老毛病。。。

mysql> desc user;

±---------±--------------±-----±----±--------±------+

| Field | Type | Null | Key | Default | Extra |

±---------±--------------±-----±----±--------±------+

| username | varchar(20) | YES | | NULL | |

| password | varchar(32) | YES | | NULL | |

| createtime | int(10) | YES | | NULL | |

| createip | int(10) | YES | | NULL | |

| email | varchar(60) | YES | | NULL | |

| age | int(3) | YES | | NULL | |

±---------±--------------±-----±----±--------±------+

6 rows in set (0.00 sec)

删除表字段

类别

详解

基本语法

alter table 表名 drop column 字段名;

代码示例

alter table user drop column age;

示例说明

删除user表中的age字段

mysql> alter table user drop column age;

Query OK, 0 rows affected (0.27 sec)

Records: 0 Duplicates: 0 Warnings: 0

mysql> desc user;

±---------±--------------±-----±----±--------±------+

| Field | Type | Null | Key | Default | Extra |

±---------±--------------±-----±----±--------±------+

| username | varchar(20) | YES | | NULL | |

| password | varchar(32) | YES | | NULL | |

| createtime | int(10) | YES | | NULL | |

| createip | int(10) | YES | | NULL | |

| email | varchar(60) | YES | | NULL | |

±---------±--------------±-----±----±--------±------+

5 rows in set (0.00 sec)

表字段改名

类别

详解

基本语法

alter table 表名 change 字段原名 字段新名 字段类型;

代码示例

alter table user change email em varchar(60);

代码详解

把user表里面的email字段改名为em

好吧,刚开始我天真地想,改名?删掉字段,再增加字段不行吗?

不行,那你把数据咋办?也不要啦?

而改名的话数据是不受影响的。

类别

详解

基本语法

alter table 表名 change 字段原名 字段新名 字段类型;

代码示例

alter table user change email em varchar(60);

代码详解

把user表里面的email字段改名为em

详细示例:

mysql> alter table user change email em varchar(60);

Query OK, 0 rows affected (0.38 sec)

Records: 0 Duplicates: 0 Warnings: 0

mysql> desc user;

±---------±--------------±-----±----±--------±------+

| Field | Type | Null | Key | Default | Extra |

±---------±--------------±-----±----±--------±------+

| username | varchar(20) | YES | | NULL | |

| password | varchar(32) | YES | | NULL | |

| createtime | int(10) | YES | | NULL | |

| createip | int(10) | YES | | NULL | |

| em | varchar(60) | YES | | NULL | |

±---------±--------------±-----±----±--------±------+

5 rows in set (0.00 sec)

全是这个套路,改一下,desc看一下效果。。。

修改表字段排列顺序

在前的字段增加和修改语句(add/change/modify)中,最后都可以加一个可选项 first|after。

//。。。发现这原文作者老爱放马后炮。啥事都不早说,啥知识点都藏着掖着,生怕你学会了。

增加表字段时我们已经学过了如何调整顺序。我们现在在来看看另外的change或modify如何来调整顺序。

//所以这个调整排列顺序主要是使用change和modify的时候加上first/after选项来实现调整顺利。

那先用first选项试一试吧:

mysql> alter table user modify em varchar(60) first;

Query OK, 0 rows affected (0.41 sec)

Records: 0 Duplicates: 0 Warnings: 0

modify是在修改字段类型,加上first选项在修改字段类型时顺便就把em字段移动到开头了

mysql> desc user;

±---------±--------------±-----±----±--------±------+

| Field | Type | Null | Key | Default | Extra |

±---------±--------------±-----±----±--------±------+

| em | varchar(60) | YES | | NULL | |

| username | varchar(20) | YES | | NULL | |

| password | varchar(32) | YES | | NULL | |

| createtime | int(10) | YES | | NULL | |

| createip | int(10) | YES | | NULL | |

±---------±--------------±-----±----±--------±------+

5 rows in set (0.00 sec)

今晚(2017年8月3日 00点25分)的最后一个字段操作命令了。完了这个就去睡啦。。

修改表名

别问我为什么把修改表名放在了字段操作里面讲。我也不知道原文作者怎么想的啊。。。真是伤脑筋啊。先敲吧,敲完有必要搬迁的话就搬迁吧。。

;

类别

详解

基本语法

alter table 旧表名 rename 新表名 ;

示例代码

alter table user rename new_user

示例说明

将表user改名为new_user

感觉这个命令真的简单。不难理解啊。英语好的好处吧??

早在前面就早该将啦。

mysql> alter table user rename new_user;

Query OK, 0 rows affected (0.35 sec)

mysql> desc new_user;

±---------±--------------±-----±----±--------±------+

| Field | Type | Null | Key | Default | Extra |

±---------±--------------±-----±----±--------±------+

| em | varchar(60) | YES | | NULL | |

| username | varchar(20) | YES | | NULL | |

| password | varchar(32) | YES | | NULL | |

| createtime | int(10) | YES | | NULL | |

| createip | int(10) | YES | | NULL | |

±---------±--------------±-----±----±--------±------+

5 rows in set (0.00 sec)

hahahah,今晚的完啦。。。这些就上篇吧。也写了两天呢。

明天开始写下篇。老规矩,边学边写。

下篇要讲这些内容啦。

4557783b69c9?from=singlemessage

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值