写在之前
最近自己开始接触数据库了,然后打算以这种形式记录一下自己学习过程中遇到的问题以及解决这些问题的过程,同时也会记录一些在学习过程中跟数据库相关的东西。
本篇为第一篇,记录一下常用的一些MySQL语句。话不多说,我们开始。
1.连接数据库
mysql 命令用于连接数据库。
命令格式:
mysql -h 主机地址 -u 用户名 -p 用户密码
这里需注意的是:用户密码和-p之间不能有空格存在,其它的无所谓,有没有都可以。或者可以直接这么写:
mysql -h 主机地址 -u 用户名 -p
然后回车,然后再输入密码。
当连接自己本地的数据库时,主机地址可以忽略不写,直接这样就可:
mysql -u 用户名 -p 用户密码
例如,我连接本地的数据库,用户名为root,密码为mysql123,则可以这么写:
mysql -u root -pmysql123
当然,也可以:
mysql -u root -p
回车,再输入密码。
第一种登录方式密码可以看到,第二种则不能看到密码。
2.修改用户密码
mysqladmin 命令用于修改用户密码。
命令格式:
mysqladmin -u 用户名 -p 旧密码 password 新密码
如果一开始该用户没有设置密码,则-p省略。
例如,我修改一个名叫root用户的密码为sql123,但该用户之前没有设置密码,则命令为:
mysqladmin -u root password sql123
如果该用户之前的密码为abc,则命令为:
mysqladmin -u root -p abc password sql123
3.新增用户
命令:grant on
命令格式:
grant select on 数据库.* to 用户名@登录主机 identified by "密码";
例如,增加一个用户test1,密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。该命令格式为:
grant select,insert,update,delete on *.* to 'test1'@'%' identified by 'abc';
但这样增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了。
所以我们可以这么做:增加一个用户test2密码为abc,只能在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MySQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,使数据库的安全系数提高,这样创建用户的代码如下:
grant select,insert,update,delete on mydb.* to 'test2'@'localhost' identified by 'abc';
如果你不想text2有密码,则可以这么做:
grant select,insert,update,delete on mydb.* to 'test2'@'localhost' identified by '';
4.创建数据库
命令:create
命令格式:
create database 数据库名;
例如,创建一个叫STU的数据库:
create database STU;
5.显示数据库
命令格式:
show databases;
上面代码运行结果,会显示当前MySQL里面含有的所有的数据库。
6.删除数据库
命令格式:
drop database 要删除的数据库名;
例如,我要删除一个名叫STU的数据库:
drop database STU;
7.使用数据库
注意!!!这一步,是你在创建表,插入数据前必须的一步,只有当你选了对那个数据库进行操作,才能进行之后的操作。
命令格式:
use 要使用的数据库名;
例如,我要使用上面我创建的STU数据库:
use STU;
8.查看当前连接的数据库
命令格式:
select database();
返回结果,你当前所连接的数据库。
9.创建数据表
命令格式:
create table 表名 (变量1 变量类型,变量2 变量类型,变量3 变量类型);
我举一个创建数据表的例子:
create table student (id int(11),name varchar(25));
MySQL的有关数据类型应该下次会单独讲一下。目前自己可以百度一下。
10.查询表的结构
命令格式:
desc 表名;
上面代码会返回:表的字段名,字段数据类型,是否为主键,是否有默认值等。
11.删除数据表
命令格式:
drop table if exists 需删除的表名;
例如,我要删除上面创建的叫student的表,则命令为:
drop table if exists student;
该命令可以同时删除多个表,只需将要删除的表名依次写在后面,相互之间用逗号隔开即可。
12.向表中插入数据
命令格式:
insert into 表名(列1,列2,列3) values(值1,值2,值3);
注意,列跟值是对应的。
13.查询表的数据
例如,我要查询student表的所有数据,命令为:
select *from student;
14.删除表中的数据
命令格式:
delete from 表名 where 条件;
例如,我要删除student表中id等于1的数据,则命令为:
delete from student where id=1;
15.修改表中的数据
命令格式:
update 表名 set 修改值 where 修改需满足的条件;
例如,我想在student表中,修改id等于1的记录,将name的李明修改为王强,则命令为:
update student set name='王强' where id=1;
16.修改表名
命令格式:
alter table 旧表名 rename 新表名;
例如,我将student表名修改为stu,则命令为:
alter table student rename stu;
写在之后
上面基本都是一些刚开始接触时常用的命令,这篇有关命令的我之后还会更新,后面我会把我常用的命令也加进来。
目前就这样了。