快捷搜索:
来自 网络数据库 2019-10-23 02:43 的文章
当前位置: 67677新澳门手机版 > 网络数据库 > 正文

MySql常用命令计算,SQL常用操作汇总

写这篇随笔的目的是我发现了在上一篇关于My SQL的随笔中存在一些不严谨的代码问题,在这里再次简单的总结一下并加以改进,以代码为主。

总结:

# !每行命令必须以分号(;)结尾

1、数据库操作

创建库
  create database db_name;

查询库
  show databases; //显示所有的数据库
  show create databases db_name; //显示特定的数据库

删除库
  drop database db_name;

修改库
  alter database db_name [modify command];
  alter database db_name character set gbk;


先通过命令行进入数据库客户端 mysql -h服务端ip地址 -P(大写)服务端使用的端口,一般为3306 -p(小写) 回车之后输入密码,进入 显示所有数据库 show databases;

2、表操作

创建表
  use db_name;
  create table tbl_name (column_structure) [tbl_option];

如:
  create table tbl_name(
  variable_name1 varchar(10)
  variable_name2 int
);

或:
  create table db_name.tbl_name(
  variable_name1 varchar(10)
  variable_name2 int
  );

查询表
查看有哪些表
  show tables;
或show tables like 'pattern_%';
查看表的创建信息
  show create table tbl_name;

  show create table tbl_name G
查看表的结构
  describe tbl_name;

  desc tbl_name;]

删除表
  drop table [if exists] tbl_name;

修改表
修改表名
  单个:rename table old_tbl_name to new_tbl_name;
  多个:rename table old_tbl_name1 to new_tbl_name1, old_tbl_name2 to   new_tbl_name2;
  跨数据库:rename table old_tbl_name to db_name.new_tbl_name;
修改列定义
增加新列定义:add
  alter table tbl_name add new_column_name data_type;
如:
  alter table exam_student add height int;
修改列的定义(新的属性或者数据类型):modify
  alter table tbl_name modify column_name new_data_type;
删除一个列:drop
  alter table tbl_name drop column_name;
重命名一个列:change
  alter table tbl_name change old_column_name new_column_name new_data_type;
修改表选项:
  alter table tbl_name new_tbl_option;
  alter table tbl_name character set utf8;

创建数据库并设置编码   - 数据库创建时可以设置字符集以及排序规则   - 字符集一般使用utf8的,排序规则一般使用忽略大小写的,其实也不能说是忽略大小写   - 它的原理是放进数据库的都转换成大写,然后不管用户输入的大写还是小写都转换成大写再去数据库里查   - 所以看起来就相当于是忽略了大小写   - 如果不设置中文会乱码 create database 数据库名字 character set utf8; create database 数据库名字 charset=utf8;

3、数据操作

创建数据
  insert into tbl_name (fields_list) values (values_list);
如:
  insert into exam_student (stu_name, stu_no) values ('xiaoming', 'php030_01');
若插入所有字段值
  insert into exam_student values ('xiaoming', 'php030_01', 98);

查询数据
查看字段信息
  select * from tbl_name;
参看具体字段列表信息
  select fields_list from tbl_name where condition;
如:默认状态下
  select stu_name, stu_no from exam_student;
或:
  select stu_name, stu_no from exam_student where 1;
有条件查询
  select * from tbl_name where condition;
如:
  select * from exam_student where fenshu >= 60;

删除数据
  delete from tbl_name condition;
如:
  delete from exam_student where fenshu <= 50;

修改数据
  update tbl_name set field = new_value where condition;
如:
  update exam_student set fenshu =100 where fenshu >= 97;

修改数据库编码 alter database 数据库名字 character set utf8;

4、主键:primary

如:法一:
  create table teacher(
  t_id int primary key [auto_increment],
  t_name varchar(5),
  class_name varchar(6),
  t_days tinyint unsigned
  );
法二:
  create table teacher(
  t_id int,
  t_name varchar(5),
  class_name varchar(6),
  t_day tinyint unsigned,
  primary key (t_id)
  );
  
  insert into teacher values (1, '王老师', '0225', 23);
在已创建表中添加主键操作:
  alter table tbl_name add primary key (field) ;
  alter table tbl_name modify colunm_name data_type not null primary key auto_increment;
自动增长:auto_increment
  alter table tbl_name auto_increment initial_value;
在已创建表中的主键id上添加auto_increment
  alter table tbl_name id_name id_name int auto_increment;

展示创建数据库的过程 show create database 数据库名字;

5、外键:foreign key

如:
主表:
  create table itcast_class(
  class_id int primary key auto_increment,
  class_name varchar(10) not null default 'itcast_php' comment '班级名称'
  ) character set utf8;
从表:
  create table itcast_student(
  stu_id int primary key auto_increment,
  stu_name varchar(10) not null default '',
  class_id int,
  foreign key
  (class_id) references
   itcast_class (class_id)
  ) character set utf8;
插入数据的顺序:先主表,后从表
  insert into itcast_class values (null, 'php0331');
  insert into itcast_student values (null, '张三', 1);
删除操作:
  alter table itcast_student drop foreign key itcast_student_ibfk_1;
  alter table itcast_student add foreign key (class_id) references itcast_class (class_id)
  on delete set null;/主表里删除某个字段,从表若对应外键则变成null/
或者: 
  on delete cascade;/主表删除一个字段,从表对应的外键则会删除相应的值/
又或者:
  on update restrict;/不允许主表进行更新操作/
  delete from itcast_class where class_id = 1;

使用某个数据库 use 数据库名字;

6、最大值

select max(field) from tbl_name;

判断当前在哪个数据库里 select database();

7、连接

内连接
  select tbl1_name.field, tbl2_name.field1, tbl2_name.field2... from tbl1_name inner join tbl2_name on tbl1_name.id = tbl2_name.id where condition;
外连接
  select tbl1_name.fields, tbl2_name.fields from tbl1_name left outer join tbl2_name on tbl1_name.id = tbl2_name.id;

查看该数据库有哪些表 show tables;

8、更改数据库密码方法:

进入mysql中后,在命令行中mysql>
输入:set password for root@localhost = password('123456');

创建数据库中的表 create table 表的名字( 字段名字 类型(范围) [约束], 字段名字 类型(范围) [约束], 字段名字 类型(范围) [约束]);

查看某表的字段(属性) desc 表的名字; show create table 表的名字; 往表中添加字段 alter table 表的名字 add 字段名字 类型(范围) [约束];

本文由67677新澳门手机版发布于网络数据库,转载请注明出处:MySql常用命令计算,SQL常用操作汇总

关键词: