mysql入门
一、用户的创建、删除及密码修改
1、新建用户
登陆mysql数据库
root@localhost ~]# mysql -u root -p (-u 后跟登入的用户名,-p 提示要密码登入)
Enter password:(输入密码)
登陆了数据库后,可以增加新用户了
mysql> insert into mysql.user(Host,User,Password) values(“localhost”,”wei”,password(“wei123″));
mysql>flush privileges;(刷新系统权限表)
2、删除用户
还是如上面一样先用root用户登陆数据库,进去数据库后
mysql>delete from mysql.user where user ='wei’ ;
mysql>flush privileges; (刷新系统权限表)
3、修改用户密码
[root@localhost ~] #mysqladmin -u root -p password 123456 (password 后跟的是要更新的新密码)
Enter password:(输入原始密码,回车即可)
其他用户修改密码方式和root一致。
二、数据库的创建与删除
1、登陆mysql数据库
在终端输入命令:
mysql -主机名 用户名 -p
eg:mysql -u root -p
按回车后,会提示输入密码。
2、创建空的数据库
mysql > create database 数据库名;
eg : mysql > create database wei; //创建了一个名为wei的数据库
3、删除数据库
mysql > drop database 数据库名;
eg : mysql > drop database wei; //删除了一个名为wei的数据库
4、使用数据库
mysql > use 数据库名;
eg : mysql > use wei; //使用数据库wei
5、数据库导出
mysqldump -u 用户名 -p 数据库名 > 数据库名.sql
mysql导出select结果到文件:
mysql -hxx -uxx -pxx -e "query statement" db > file
例如: mysql -h127.0.0.1 -uroot -p000000 -e"select * from a" test > 1.txt
这样会输出列名信息,如果不想输出列名信息: mysql -h127.0.0.1 -uroot -p000000 -N -e"select * from a" test > 1.txt
mysql导出某张表:
mysqldump -uroot -pdbpasswd -d dbname test>db.sql;(不含数据)
mysqldump -uroot -pdbpasswd dbname test>db.sql;(包含数据)
6、数据库导入
mysql > source 文件名.sql
or
mysql -uroot -pdbpasswd -h127.0.0.1 dbname < db.sql
三、表的相关操作
1、创建新的数据表
用create命令创建新的数据表:
create table tbl_name
eg:创建一个用户表,
mysql > create table user (
> id int(4) not null primary key auto_increment,
> username char(20) not null,
> password char(20) not null,
> sex int(4) not null default'0');
设置id为主键。(auto_increment :自动增加)
2、获取表结构
desc命令用于获取数据表结构。
desc tbl_name;
或者是
show colunms from tbl_name;
3、 删除数据表
drop table tbl_name;
4、修改表名
alter table tbl_name rename new_tbl;
5、对列的操作
1)增加列:alter table tbl_name add col_name type;
2)删除列:alter table tbl_name drop col_name;
3)改变列:
改变列的属性
alter table tbl_name modify col_name new_type;
或是
alter table tbl_name change col_name col_name new_type;
改变列的名字
alter table tbl_name change old_col_name col_name;
6、查询
1)查询所有行:
命令格式:select <字段1,字段2> from <表名> where <表达式>;
eg:查看表user中的所有数据:select * from user;
2)查询前几行数据:
eg:查看user的前3行数据:select * from user order by id limit 0,3;
3)查看最后一行数据:
eg:查看最后一行数据:
select * from user order by id desc limit 1;
查看username为"wei"的最后一行数据:
select * from user where username = 'wei' order by id desc limit 1;
7、记数count
count 是计算表中的记录条数,如果我有一个名叫msg的表
MariaDB [wei]> select * from msg;
+----+----------+---------------------+-------------+
| id | username | time | message |
+----+----------+---------------------+-------------+
| 1 | wei | 2015-04-23 11:36:05 | hello!world |
| 2 | wei | 2015-04-23 11:36:22 | hello!world |
| 3 | cheng | 2015-04-23 15:05:05 | hello!world |
| 4 | cheng | 2015-04-23 15:05:22 | hello! |
+----+----------+---------------------+-------------+
在这个表中记录了用户发送的消息记录,我想知道wei这个用户发了多少条消息,我可以用这个语句:
MariaDB [wei]> select count(*) from msg where username = 'wei';
它会给我这样一个结果:
+----------+
| count(*) |
+----------+
| 2 |
+----------+
如果这个你觉得还不够明显,可以在加几个字让它多输出一点
MariaDB [wei]> select username,count(*) from msg where username = 'wei';
然后
+----------+----------+
| username | count(*) |
+----------+----------+
| wei | 2 |
+----------+----------+
比刚刚的多输出了一个用户名,当表现的更加明显了。
8、清空表中的数据
truncate table mytable;
清空后,表的id从1开始
四、索引的建立
数据库索引是一种数据结构,目的是提高表的操作速度。可以使用一个或多个列,提供快速随机查找和访问记录的高效排序来创建索引。
1、普通索引
CREATE UNIQUE INDEX index_name ON table_name ( column1, column2,...);
2、唯一索引
CREATE UNIQUE INDEX AUTHOR_INDEX ON tutorials_tbl (tutorial_author)
五、修改默认端口
cd /etc/mysql
sudo gedit my.cnf
将 port = 3306 修改想要修改的端口
Plus:
mysql > show table status from DB_name;
显示数据库DB_name所有表的信息;
mysql > show create table tbl_name;
显示表tbl_name创建时的信息
另外,这里有一篇关于 mysql 数据类型的blog以及UNSIGNED注意事项