数据库指的是文件的集合,操作这个集合需要用到SQL语句,SQL语句是由socket连接的。
一,启动数据库:
Linux下启动服务器进程:进入管理员身份,执行 service mysqld start,然后执行 mysql -u root -p,如果有密码的话则输入密码,无密码就直接enter。
由上图信息可知数据库的版本和版权,选择帮助方式,命令结尾以';'或者'\g'结尾;
二,数据库语句:
SQL语句基本分为以下几种:
- DDL:数据定义语句(针对结构的增删改查)create drop alter show;
- DML:数据操纵语句(针对数据的增删改查) insert delete update select;
- DCL:数据控制语句(针对权限的控制)grant :赋权限,revoke:回收权限;
数据库的结构主要包括库,表,索引,视图;
查看数据库结构的语句为:show x_names;例如,查看数据库可以用:show databases;
以下介绍DDL语句:
创建表的SQL语句:create database base_name;其中base_name代表数据库的库名。如果该库存在则创建失败,为了保证程序的健壮性,我们可以这样写:create database if not exists base_name;创建或者删除其他结构也可以这样写。
创建其他结构需要指明在哪个数据库里面创建,语句为:use database_name;
创建表:create table table_name
{
字段1名称,字段1类型,字段1约束
字段2名称,字段2类型,字段2约束
}
查看表结构:desc table_name(字段信息) ; 或者 show create table table_name;
修改表:
以下介绍DML语句:
给表中插入数据:insert into tb_name values( "001","zhangsan",18,"nan");insert into tb_name(id,name,age,sex) values ( "001","zhangsan",18,"nan");
插入多条数据:insert into tb_name values( "001","zhangsan",18,"nan"),
( "001","zhangsan",18,"nan"),
( "001","zhangsan",18,"nan");
批量插入时用load source ;
- 修改字段类型及大小:alter table table_name modify X_name varchar(20);此语句用来将X_name字段的类型以及大小修改为varchar(20);
- 修改字段名称:alter table table_name change X_name mname varchar(20);此语句用来将X_name的字段名称修改为mname并且将其类型及大小改为varchar(20);
- 添加新字段:alter table table_name add new_name int [after X_name];添加一个新字段new_name放在X_name字段后面,放在第一行的话中括号内添first;默认新加入的字段在最后一行。
- 删除一个字段:alter table table_name drop X_name;删除X_name 字段;
- 修改表名:alter table table_name rename new_tbname;将名为table_name的表名改为new_tbname;
删除数据:delete from tb_name where name = " zhangsan ";(条件删除)
truncate table tb_name;(删除表中所有元素,破坏表的结构,不计入日志文件)
查询数据:select * from tb_name;
去重查询:select distinct age from tb_name;
查询后排序:order by ASC(升序)/DESC(降序);(默认情况下是升序排列)
分组查询:group by:select id ,sum(score) from table_name group by id;
等值查询效率很低(笛卡尔乘积方式匹配),连接查询效率高。
连接查询包括外连接,内链接;外连接包括左外连接,右外连接和全外连接;
左连接:left join 左表保留,右表补空;右连接:right join 右表保留,左表补空;全外连接:full [outer] join:都补空;
内连接:inner join(不补空);
联合查询:union 联合两个表到一起且自动去重;union all不去重;联合查询的字段和类型都需要匹配。