SQL数据库操作命令大全

                                        SQL数据库操作命令大全

官网地址:https://dev.mysql.com/downloads/mysql/

ls   /var/lib/mysql    这里是数据库的目录

过滤初始密码:

grep password /var/log/mysqld.log

修改密码:

alter user  root@”localhost” identified by "123qqq…A";
修改密码策略
Show variables like  “%password%”    模糊查看包含password 的行

set global validate_password_policy=0;                  //只验证长度
set global validate_password_length=6;               //修改密码长度,默认值是8个字符
alter user root@”localhost”  identified by "tarena";  //修改登陆密码

这些在命令行里修改的是临时更改


                vim /etc/my.cnf    //永久配置
[mysqld]  下面
validate_password_policy=0    变量名+名称
validate_password_length=6    密码长度

 

一:基础

先下载安装数据库:

yum -y install mariadb mariadb-server

 mysql  进入数据库

1.创建数据库:

CREATE DATABASE database-name;

 2.删除数据库

drop database dbname;

3.查看数据库

show databases;

4.终止命令,不执行

Show databases  \c

5.获取当前所在的库:

Select database();

 6.显示连接用户名:

show  user();

7.切换库:

show  user();

8.建表命令:

Create table 库名.表名(    

字段名1  类型(宽度),

字段名2  类型(宽度),

....

)DEFAULT CHARSET=utf8;    //指定中文字符集,可以给字段赋予中文

create table db1.stuinfo(name char(15), homeaddr char(20));

在db1这个库里创建一个叫stuinfo 的表,表里面有name和homeaddr 2个字段

9.查看表里面的结构和类型:

desc stuinfo; 

10.查看表内所有内容:

select * from db1.stuinfo;

11.往stuinfo表里面的2个字段添加内容,添加了2行

insert into db1.stuinfo values("bob","usa"),("lilei","china");

12.批量修改表记录,把stuinfo表里的 homeaddr字段的内容都修改成beijing

update db1.stuinfo set homeaddr="beijing"; 

13.删除stuinfo表里的所有表记录

delete from db1.stuinfo; 

14.删除db1库里的stuinfo表

drop table db1.stuinfo;

15.查看默认的字符集

show create table mysql.user; 

16.创建中文表,向其中添加内容:

create table 学生表2(姓名 char(10), 年龄 int)DEFAULT CHARSET=utf8;
insert into 学生表2 values("张三丰",150),("张翠山",99);

进阶用法

“  ” :不是空,代表为0个字符

表结构:

约束条件:        作用是限制如何给字段赋值

null :              是yes 代表可以给表格赋空值(默认设置)

not null          不允许为null(空)

key                 键值类型

default            设置默认值,缺省为null

extra              额外设置

1.只对name字段赋值,其余字段默认值

insert into t1(name) values("jj");  

2.  判断name是否为null空


mysql> select name from db2.dc where name is null; 

3.把ygb的yg_id=2的编号改成yg_id=8

update ygb set yg_id=8 where yg_id=2;

4.把ygb中的yg_id=8的编号信息删除

delete from ygb where yg_id=8;

                                                     修改表结构

命令 : alter table 库名.表名  执行动作;

Add   添加新字段   :

add 字段名 类型  约束条件;     字段默认在末尾

add 字段名 类型  约束条件 after  字段名;    指定在什么字段后面

add 字段名 类型  约束条件 first;   添加到所有前面

 1.添加一个新字段叫 email

alter table db2.t1 add email varchar(50); 

2.在age后面添加一个字段为likes 并设置default默认值

alter table t1 add likes set("eat","drink","game","happy") not null default "eat,drink" after age;

3.在所有字段前面添加一个字段为 class  设置默认值为”nsd1905”

alter table db2.t1 add class char(7)  default "nsd1905" first;

Modify  修改字段类型    :

修改的字段不能与已存储的数据冲突

格式  :    alter table  库命.表名  modify 字段名  类型(宽度)  约束条件 [after 字段名 | first ];

1. 把字段age 修改到class字段后面,字段内容不变,就把原内容抄一遍

alter table db2.t1 modify age tinyint unsigned default 19 after class;

2.把modify 字段内容修改成 varchar(15)   其余不变照抄  

alter table db2.t1 modify name varchar(15) not null default "";

Change  修改字段名   :

alter table 库名.表名 change 源字段名  新字段名  类型(宽度)  约束条件;

 1.把字段email  改成叫mail  字段内容不变照抄

alter table db2.t1 change email  mail varchar(50);

drop   删除字段  :

alter table 库名.表名  drop 字段名;

1. 把修改后的mail字段删除掉

alter table db2.t1 drop mail; 

rename  修改表名 :

alter table  库名.表名  rename  库名.新表名;

1. 把db2库里的t1表 改名为 dc

alter table db2.t1 rename db2.dc;

mysql简直概述:

Mysql 键值

普通索引  index

唯一索引  unique

主键   primary  key

外键   foreign   key

全文索引  fulltext

-索引类似余书的目录

-对表中的字段值进行排序

-索引类型包括 : Btree  B+tree  hash

优点 : 可以加快数据的查询速度

缺点 :需要占用物理空间,降低了数据的维护速度 

index   普通索引:

-一个表中可以有多个index 字段

index 字段 标志是MUL

1. 建表时创建索引

create table db2.t2(
    -> name char(10),
    -> age int,
    -> class char(7),
    -> email char(30),
    -> index(name),index(age)
    -> );
创建t2 表时添加index索引,用name  和 age 2个表字段 做索引目标

2.已有表里添加索引 :

create  index  索引名  on  表名(字段名);

create index xxx on db2.dc(name); 把dc表里的name字段加到索引里名为xxx

2.1drop index 索引名 on 表名;   删除索引

drop index age on db2.t2;  删除db2库中t2表里叫 age 的索引

2.3show  index from 表名 \G;    详细查看索引字段

show index from db2.t2\G;   查看索引字段

primary  key主键

 

-字段值不允许重复,且不允许赋NULL空值

-一个表中只能有一个primary  key字段

-主键字段的标志是PRI

建表时创建主键:

-  primary  key(字段名)

 1.创建t3表时,设置name字段为主键

create table db2.t3(name char(10) primary key, age int);

2.创建t4表时,写好字段参数后,在指定name为主键,和上面操作一样.

create table db2.t4(name char(10), age int, primary key(name));

3.已有表里创建主键 :

格式 :alter table 库.表  add primary  key(字段名)

3.1 在已有的dc表里把name字段设置成主键

alter table db2.dc add primary key(name); 

4.删除主键

alter table 表名 drop   primary  key;

复合主键 :

表中多列一起做主键

插入记录时多列的值不允许同时重复

格式 : alter table  表名 add primary  key(字段名列表);

 1.建表时创建复合主键:

create table db2.t5(class char(7), 
	->name char(10),
	->money  enum("no","yes"), 
	->primary key(class, name)
	->);
创建t5表时,指定class 和name 2个表字段为主键,即是复合主键

2.在已有表里添加主键 :

alter table  表名 add primary  key(字段名列表);

3.在t5表里添加一个字段

alter table db2.t5 add stu_num char(9) first; 

4.把t5表里的stu_num  class  name  3个字段设置成主键

alter table t5 add  primary key(stu_num, class, name); 

与auto_increment  连用

 auto_increment  :自增长

 1.创建t6表,创建时设置stu_num字段为主键并且是auto_increment 自增长.

create table db2.t6(stu_num int primary key auto_increment, name char(10), age int);

 2.给这个表添加内容但不给stu_num赋值,因为stu_num是设置的自增长,所已不赋值也会自动+1

insert into db2.t6 (name,age) values("bob",19);

 3.向t6表中添加内容

insert into db2.t6(null,"dc",22); 

 foreign key 外键

 

作用: 向表中插入记录时,字段值在另外一个表字段值范围内选择.

使用规则:

- 表存储引擎必须是innodb

-字段类型要一致

-被参照字段必须要是索引类型的一种(primary key),不能重复,不能为空值

Create table 库.表(       格式:
	字段列表,
	Foreign key(字段名) references 库.表(字段名) 指定外键
	On update cascade  同步更新
	On delete cascade   同步删除
	)engine=innodb;     指定存储引擎

1.创建ygb 表,为yg_id设置成主键和自增长,并向其2个字段添加内容,指定存储引擎.

create table db2.ygb(yg_id int primary key auto_increment, name char(20), sex enum("boy","girl"))engine=innodb;

insert into db2.ygb(name,sex) values("bob","boy");
insert into db2.ygb(name,sex) values("lisi","girl");

2.创建一个表叫gzb ,表字段要和ygb表里的表字段一样,后设置参考ygb表的gz_id 做本地表gz_id 的外键,并报持同步更新和同步删除,在指定存储引擎

create table gzb(gz_id int, pay float(7,2), foreign key(gz_id) references ygb(yg_id) on update cascade on delete cascade)engine=innodb;

2.1把ygb的yg_id=2的编号改成yg_id=8

update ygb set yg_id=8 where yg_id=2;  

因为之前有设置过同步更新,所以更改ygb表中的yg_id 会同步到gzb表中的yg_id中

2.2把ygb中的yg_id=8的编号信息删除

delete from ygb where yg_id=8; 

2.3去里面查询外键名称

Show create table 表名;
alter  table 表名  drop  foreign  key  外键名;

 

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值