转载自:http://www.jb51.net/article/84399.htm
安装mysql命令 :$ sudo apt-get install -y mysql-server
查看mysql的版本命令(注意-V是大写,不然会出现错误):$ mysql -V
启动mysql命令(其它关闭,重启等功能只需将start换成相应的stop,restart等字母即可):
$sudo service mysql start (root权限:若以“账号”的角度来看,它指的是“系统管理员”的身份,即为超级用户,拥有最高权限。若以目录的角度来看,它指的是“根目录”,即为“/” ,显然本段指的为第一种情况:系统管理员。)
启动之后,进入mysql命令为:$ mysql -u用户名 -p密码
由于mysql命令与linux命令有点不同,因为mysql的命令总是以“;”作为结束的。这是需要稍微注意一下的。(以上的密码可以直接输在-p之后,也可以输在第二行,区别是第二行的密码以不可见的形式出现)
进入mysql之后,首先要查看一下数据库:> show databases;(注意分号“;”不要落下)
系统会自带几个数据,例如performance_schema ,information_schema,mysql。这几个自带的数据库最好不要删,以免它出异常。
查看了数据库之后有两种可能,要么自己新建设一个数据库,要么就是删除一个数据库,所以我将两者合在一起记录,使用的时候知道他们是同一级别就可以了。
新建一个数据库命令:> create database 数据库名称;
删除一个数据库命令:> drop database 数据库名称;
:> use 数据库名称;
无论是新房还是旅店的房,我们进去之后,首先都应该查看一下状况。以旅馆为例:如床的摆设位置,光线是否充足,卫生间是否足够大,床上的被子是否被啪啪过有没有更换etc。
对数据库而言也是如此,进来之后首先要查看一下数据库中的”表“(数据库中可以放很多表这是不容质疑的,就像房间里可以放置多种多样的家具一样,查看一下是否有没有表或你需要的表)。
查看表命令 :> show tables ;(由于是新建的表,就像新买的房,里面是空的。)
类似与为新房添加家具,我们要为数据库添加表:
建立一个新表:> create table 表名 (字段参数); 或 >create table if not exists表名(字段参数);
删除一个旧表:>drop table 表名; 或 >drop table if exists表名;
—————————————————————————————————————————————————————————————————————————————
字段参数以“(字段名1 数据类型1,字段名2 数据类型2,......)”的形式构建。
—————————————————————————————————————————————————————————————————————————————
类型 说明
CHAR 1~255个字符的定长串,它的长度必须在创建时指定,否则MySQL假定为CHAR(1)
VARCHAR 可变长度,最多不超过255字节,如在创建时指定VARCHAR(n),则可存储0~n个字符的变长串
TEXT 最大长度为64K的变长文本
LONGTEXT 同Text,最大长度为4GB(纯文本,一般不会到4G)
ENUM 接受最多64K个串组成的预定义集合的某个串
SET 接受最多64K个串组成的预定义集合的零个或多个串
INT[(M)] 4字节(整数值,有符号值:-2147683648 到2147683647(- 2^31 到2^31- 1) 无符号值:0到4294967295(0 到2^32 – 1))
DATE 4字节(以年月日的格式显示日期,范围是1000-01-01——9999-12-31)
TIME 3字节(以时分秒的格式显示时间,范围是-838:59:59——838:59:59)
DATETIME 8字节(显示日期和时间,范围是1000-01-01 00:00:00——9999-12-31 23:59:59)
BLOB 存储二进制数据类型,最大长度为64KB。
说明:(1)TIME时间范围居然有这么大的范围,特别是 time 可以取负值,这是mysql为了满足两个日期时间相减才这样设计的。
(2)BLOB二进制数据类型是比较重要的数据类型,因为所有的图片,视频,音频文件都是以二进制进行存储的。
—————————————————————————————————————————————————————————————————————————————
新建一个表后,可以粗略的查看表的结构,命令为:> desc 表名称; 或>show columns from表名称;
表的结构包括属性名,数据类型,是否为空值,是否设定默认值等信息。
—————————————————————————————————————————————————————————————————————————————
—————————————————————————————————————————————————————————————————————————————
也可以精细的查看表中的数据,使用的命名为:> select 字段名1,字段名2,字段名3..... from 表名称;
而我们实际为了偷懒常用以下几个命令来查看它的内容,其实他们都是以上命令的变形或者扩展,所以理解了上一行的命令,理解下面几个命令就很容易了。
如这个命令:> select * from 表名称;
如查看表中第n到m行:> select * from 表名称order by字段名 limit n-1,m;
—————————————————————————————————————————————————————————————————————————————
—————————————————————————————————————————————————————————————————————————————
向表中增加插入数据,使用的命令为:>insert into 表名称 (字段名1,字段名2,字段名3......) values(字段名1的值,字段名2的值,字段名3的值......);
—————————————————————————————————————————————————————————————————————————————
—————————————————————————————————————————————————————————————————————————————
增加有了,那么删除表中的数据肯定也是必须的,使用命令:>delete from 表名称where表达式;
其中表名称定位到哪个表,而表达式则定位到要删除的具体位置,表达式的形式是与字段名和其中数据有关的等式;
—————————————————————————————————————————————————————————————————————————————
—————————————————————————————————————————————————————————————————————————————
——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
删除破坏往往最容易,那么如何修改其中的内容呢?比如你在输入的时候粗心而输入错误,事后发现就得进行修改它:
请使用命令:>update 表名称 set 字段名=“新值” where 表达式;
—————————————————————————————————————————————————————————————————————————————
现在我们看到的上面表中有三个字段了,分别是name(姓名),age(年龄),high(身高),完美总是不断的在修改,才渐臻完美,假如你需要增加/删除一个address(家庭地址)的字段。
增加字段请使用命令:>alter table 表名称 add 字段名 数据类型 其它;(其它包括默认初始值的设定等等)
删除字段请使用命令:>alter table 表名称 drop 字段名;
—————————————————————————————————————————————————————————————————————————————
与此类似的结构还有:增加索引,加主关键词索引,删除索引etc,请各自尝试不再赘述 ;
增加索引命令:>alter table 表名称 add index 索引名 (字段名1,字段名2,字段名3.......);
加主关键子索引命令:>alter table 表名称 add primary key(字段名);
删除索引命令:>alter table 表名称 drop index 索引名;
一个简单的修改表的名称,请使用命令:>rename table 原表名 to 新表名;—————————————————————————————————————————————————————————————————————————————
—————————————————————————————————————————————————————————————————————————————
一个表,其中的内容杂乱无序往往缺少美感,对于大型数据库中大型表而言想要在其中寻找其中的东西简直是大海捞针,所以对表中的内容进行排序对于寻找数据就是事半功倍。
请使用命令:>select 字段名1,字段名2...... from 表名称 order by 字段名1,字段名2......;
(第一个字段是需要显示的字段内容,而第二个字段是进行排序的字段,请不要混淆哦!)
select * from person order by age————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
create database data_name //创建名为data_name的数据库
—————————————————————————————————————————————————————————————————————————————
我的系统是Ubuntu 15.10
1 登陆MySQL:mysql -u root -p
2 mysql默认的datadir=var/lib/mysql
3 MySQL配置文件/etc/mysql/my.cnf
4 查看系统已存在的数据库show databases;
5 删除名为test的空数据库 drop database test;
6 建立对test数据库有完全操作权限的名为centospub的用户 mysql>grant all privileges on test.* to centospub@localhost identified by 'password';
7 增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令:mysql>grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";
8 增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。mysql>grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";
9 建立名为test的数据库create database test;
10 取消centospub用户对数据库的操作权限revoke all privileges on *.* from centospub@localhost;
11 删除centospub用户delete from mysql.user where user='centospub' and host='localhost';
12 刷新,使所做的改动生效flush privileges;