数据库——SQL基础使用

文章目录

  • SQL基础使用
    • 1 SQL基本概念
        • 1.1 SQL语言分类
        • 1.2 常用名词
        • 1.3 通配符
    • 2 SQL基本语句
        • 2.1 数据库操作——增、删、查
        • 2.2 表操作——增、删、查
        • 2.3 表操作——改
        • 2.4 数据操作——增、删、改、查
        • 2.5 存储引擎操作
        • 2.6 其他
    • 3 设置支持中文数据
        • 3.1 查看编码
        • 3.2 设置数据库为UTF-8编码
        • 3.3 设置数据表为UTF-8编码

详见 MySQL数据库—SQL汇总

SQL基础使用

1 SQL基本概念

1.1 SQL语言分类
  • 数据定义语言DDL:针对数据库或表,如create、drop、alter等语句
  • 数据操纵语言DML:针对表中的数据,如insert、delete、update等语句
  • 数据查询语言DQL:如select语句
  • 数据控制语言DCL:如grant,revoke,commit,rollback等语句
1.2 常用名词
  • 数据表的一列称为字段(field)

  • 数据表的一行称为记录

  • 主键唯一键
    在这里插入图片描述

  • utf8
    UTF-8(标准写法),Universal Character Set/Unicode Transformation Format,通用字符集/Unicode转换格式。
    PHP 在 Windows 下边英文不区分大小写,所以也可以写成 “utf-8”;“UTF-8” 也可以把中间的"-“省略,写成 “UTF8”,一般程序都能识别;MySQL中使用utf-8与UTF-8会出现问题,只能使用"utf8”。
    UTF-8是编码规则,Unicode是字符集。
    字符集:为每一个「字符」分配一个唯一的 ID(学名为码位 / 码点 / Code Point)
    编码规则:将「码位」转换为字节序列的规则(编码/解码 可以理解为 加密/解密 的过程)
    1.单字节的字符,字节的第一位设为0,对于英语文本,UTF-8码只占用一个字节,和ASCII码完全相同;
    2.n个字节的字符(n>1),第一个字节的前n位设为1,第n+1位设为0,后面字节的前两位都设为10,这n个字节的其余空位填充该字符unicode码,高位用0补足。

1.3 通配符
  • 百分号%:匹配任意类型和长度的字符,中文用两个%
  • 下划线_:匹配单个任意字符
  • 方括号[ ]:指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个
  • 方括号[^]或者[!]:其取值也[ ]相同,但它要求所匹配对象为指定字符以外的任一个字符。

2 SQL基本语句

2.1 数据库操作——增、删、查
create database if not exists new_dbname;  -- 新增  数据库

drop database old_dbnane;  -- 删除  数据库

use databasename;  -- 选中  数据库
select database();  -- 查看  当前选中的数据库
show databases;  -- 查看  所有数据库
2.2 表操作——增、删、查
create table if not exists tablename(field1, field2, field3, ..., primary key(fieldname), foreign key(fieldname) references tablename2(fieldname))[engine=InnoDB auto_increment=1 default charset=utf8];  -- 新增  表
--field——fieldname fieldtype [primary key] [not null] [unique] [auto_increment] [default '默认值'] [comment '注释内容 references tablename2(fieldname)']
create table tablename select statement;  -- 新增  表(通过子查询)

drop table tablename;  -- 删除  表

select * from tablename;  -- 查看  表内容
describe tablename;  --  查看  表结构
show create table tablename;--查看  建表语句
2.3 表操作——改
alter table tablename add field [after fielname(or first)];  -- 新增  列
alter table tablename drop fieldname;  -- 删除  列
alter table tablename modify fieldname new_fieldtype;  -- 修改  列类型

alter table tablename add unique(fielname);  -- 添加  唯一属性(为已有fieldname)
alter table tablename drop index fielname;  -- 删除  唯一属性

alter table tablename  fieldname  fieldtype auto_increment;  -- 添加  自增属性(一个表只能有一个字段具有自增属性,且必须是键)

alter table tablename rename new_tablename;  -- 重命名表
2.4 数据操作——增、删、改、查
insert into tablename(fieldname1,fieldname2,fieldnamen) values('value1','value2',...);  -- 新增  一条记录(存在默认值的字段可以不指定)

delete from tablename [where fieldname=value];  -- 删除  一条记录
truncate table tablename;  -- 清空表中所有数据,DDL语句

update tablename set fieldname1=new_value where filename2=value;  -- 修改  一条记录某个字段中的数据

select *(or fieldname1,fieldname2,...) from tablename [where filename='value'];  -- 查找  (若使用通配符%、_要用like、not like,而不能用=、!=)
2.5 存储引擎操作
show engines;--查看mysql现在已提供的存储引擎:
show variables like '%storage_engine%';--查看mysql当前默认的存储引擎
show create table tablename;--查看某张表用的存储引擎(结果的"ENGINE="部分)
alter table tablename ENGINE=InnoDB--修改引擎
create table tablename(fieldname1 fieldtype1,fieldname2 fieldtype2,..) ENGINE=engine_name;--创建表时设置存储引擎
2.6 其他
comment '注释内容'

3 设置支持中文数据

3.1 查看编码
show create database dbname;    -- 查看数据库编码
show create table tablename;    -- 查看数据表编码
-- 将数据库或表格的编码方式设置为国际通用编码utf-8,便可支持中文数据
3.2 设置数据库为UTF-8编码
  • 创建数据时设置编码
create database dbname default character set utf8;
  • 修改配置文件
# 修改mysql配置文件,使默认编码为UTF-8
sudo vim /etc/mysql/my.cnf
______________________________
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
______________________________
3.3 设置数据表为UTF-8编码
  • 创建数据表时设置编码
create table tables(...)character set=utf8;
  • 修改已创建的数据表编码
alter table tablename convert to character set utf8;

你可能感兴趣的:(程序员基础,数据库,sql)