-
MySQL教程之mysql 基础sql语句
1、mysqladmin语句:
# 查看mysql版本
mysqladmin version
# 更改root用户密码
mysqladmin -u root -p原密码 password '新密码'
# 查看数据库是否可用
mysqladmin -uroot -p ping
# 创建数据库
mysqladmin -uroot -p create my_test
# 显示服务器上的所有数据库
mysqlshow -uroot -p
# 显示数据库my_test下有些什么表:
mysqlshow -uroot -p my_test
# 统计my_test 下数据库表列的汇总
mysqlshow -uroot -p my_test -v
# 统计my_test 下数据库表的列数和行数
mysqlshow -uroot -p my_test -v -v
# 删除数据库 my_test
mysqladmin -uroot -p drop my_test
2、用户登陆相关语句
mysql> mysql -u用户名 -p密码 -h服务器地址 登陆远程服务器
mysql> mysql -u用户名 -p密码 登陆本地服务器
3、用户密码相关语句
#查看当前登陆账户
mysql>select user();
# 创建用户
mysql>create user "用户名"@"主机地址" IDENTIFIED BY "密码"; # 创建用户
mysql>create user "用户名"@"192.168.1.1" IDENTIFIED BY "密码"; # 指定主机地址
mysql>create user "用户名"@"192.168.1.%" IDENTIFIED BY "密码"; # 指定主机范围
mysql>create user "用户名"@"%" IDENTIFIED BY "密码"; # 表示所有主机都可以连
# 上述创建好账户后,是不能直接登录的,需要给账户关联数据库,然后给对应的数据库分配权限后才能登录。
# 查看用户权限
mysql>show grants for "用户名"@"主机地址";
# 给用户分配权限
mysql>grant 权限 on 数据库.表 to "用户"@"主机地址";
# 权限:select、insert、update、delete、all(所有权限)
# 数据库.表 如果是*.*表示所有数据库所有表,一般不会这么设置。
# grant 不单单只是给用户赋值权限,如果输入的用户不存在会创建一个用户。
# 下面使用grant创建用户和分配密码
mysql>grant select on 数据库.表 to "用户"@"主机地址" identified by "密码" ;
mysql>flush privileges; # 更新权限设置
# 密码设置
mysql> set pasword = password("密码")
mysql>set password for "用户名"@"主机地址" = password("密码")
# 忘记root密码
net stop mysql
mysqld -nt --skip-grant-tables
以管理员身份重新启动一个cmd命令窗口,输入:mysql -uroot -p,Enter进入数据库。
select host,user,password from mysql.user; //即可查看到用户和密码
修改密码,在命令行下 依次 执行下面的语句
mysql>use mysql
mysql>update user set password=password("new_pass") where user="root";
mysql>flush privileges;
mysql>exit
重新启动MYSQL,输入密码登录即可。
net start mysql
mysql -uroot -p
# 删除用户
mysql> drop user "用户名" ;
4、数据库相关操作
增:create database 数据库;
删:drop database 数据库;
改:alter database 数据库 字符集;
查:show databases;
show create database 数据库;
5、数据库中表相关操作
增:create table 表名(字段 数据类型 约束条件,...);
删:delete from 表名;# 如果有自增id,新增的数据,仍然是以删除前的最后一样作为起始。
truncate 表名; # 数据量大,删除速度比上一条快,且直接从零开始,
改:alter table 表名 modify 字段 数据类型 约束条件;
alter table 表名 change 字段 新字段名 数据类型 约束条件;
alter table 表名 add 字段 数据类型 约束条件 first: # 添加新字段并放在表的第一个位置
after table 表名 add 字段 数据类型 约束条件 after 字段; # 新增字段,放在某一字段的前面
after table 表名 rename 新表名;
查:show tables;
select * ftom 表名;
select distinct 字段名 from 表; # distinct关键字表示去掉该字段的重复值
select 字段*12 from 表; # select在查询字段时可以对字段进行简单的四则运算
select concat("自定义字符",字段,"自定义字符") from 表名;
select concat("自定义字符",字段,"自定义字符") as 显示名 from 表名;
select concat_ws('自定义字符',字段1,字段2,...) from 表名; # 将字段和字段用自定义字符进行分隔
select concat_ws('自定义字符',字段1,字段2,...) as 显示名 from 表名; # 将字段和字段用自定义字符进行分隔
select *,(case when 条件 then 执行字段 when 条件 then 执行字段 else 执行字段 end) from 表名;
desc 表名; # 显示表结构
show create table 表名; # 显示表结构
6、数据库中表字段相关操作
增:insert into 表名 (字段) values(数据,...);
删:delete from 表名 where 字段=数值;
改:update 表名 set 字段=新值 where 字段=旧值;
查:select * from 表名;
select 字段,字段,... from 表名;