SQL语句学习(一)----通用语法,DDL,DML基础语句

1.1     SQL概述

1.1.1     SQL语句介绍

  结构化查询语言(Structured Query Language)简称SQL,是关系型数据库管理系统都需要遵循的规范。不同的数据库生产厂商都支持SQL语句,但都有特有内容。

  

1.1.2     SQL语句分类

  

  • SQL分类:

    • 数据定义语言:简称DDL(Data Definition Language),用来定义数据库对象:数据库,表,列等。关键字:create,alter,drop等
    • 数据操作语言:简称DML(Data Manipulation Language),用来对数据库中表的记录进行更新。关键字:insert,delete,update等
    • 数据控制语言:简称DCL(Data Control Language),用来定义数据库的访问权限和安全级别,及创建用户
    • 数据查询语言:简称DQL(Data Query Language),用来查询数据库中表的记录。关键字:select,from,where等

  

1.1.3     SQL通用语法

  

  • SQL语句可以单行或多行书写,以分号结尾
  • 可使用空格和缩进来增强语句的可读性
  • MySQL数据库的SQL语句不区分大小写,关键字建议使用大写
    • 例如:SELECT * FROM user。
  • 同样可以使用/**/的方式完成注释
  • MySQL中的我们常使用的数据类型如下

  

详细的数据类型如下(不建议详细阅读!)


分类


类型名称


说明


整数类型


tinyInt


很小的整数


smallint


小的整数


mediumint


中等大小的整数


int(integer)


普通大小的整数


小数类型


float


单精度浮点数


double


双精度浮点数


decimal(m,d)


压缩严格的定点数


日期类型


year


YYYY  1901~2155


time


HH:MM:SS  -838:59:59~838:59:59


date


YYYY-MM-DD 1000-01-01~9999-12-3


datetime


YYYY-MM-DD HH:MM:SS

1000-01-01 00:00:00~ 9999-12-31 23:59:59


timestamp


YYYY-MM-DD HH:MM:SS

1970~01~01 00:00:01 UTC~2038-01-19 03:14:07UTC


文本、二进制类型


CHAR(M)


M为0~255之间的整数


VARCHAR(M)


M为0~65535之间的整数


TINYBLOB


允许长度0~255字节


BLOB


允许长度0~65535字节


MEDIUMBLOB


允许长度0~167772150字节


LONGBLOB


允许长度0~4294967295字节


TINYTEXT


允许长度0~255字节


TEXT


允许长度0~65535字节


MEDIUMTEXT


允许长度0~167772150字节


LONGTEXT


允许长度0~4294967295字节


VARBINARY(M)


允许长度0~M个字节的变长字节字符串


BINARY(M)


允许长度0~M个字节的定长字节字符串

1.2     DDL之数据库操作:database

1.2.1     创建数据库

  格式:

     * create database 数据库名;

     * create database 数据库名 character set 字符集;

  例如:

  #创建数据库 数据库中数据的编码采用的是安装数据库时指定的默认编码 utf8

  

CREATE DATABASE webdb_1;

  #创建数据库 并指定数据库中数据的编码

CREATE DATABASE webdb_2 CHARACTER SET utf8;

  

  

1.2.2     查看数据库

  查看数据库MySQL服务器中的所有的数据库:

  

show databases;

  

  查看某个数据库的定义的信息:

show create database 数据库名;

  例如:

show create database webdb_1;

  

1.2.3    删除数据库

drop database 数据库名称;

  例如:

drop database webdb_2;

  

1.2.4    使用数据库

  • 查看正在使用的数据库:
select database();

  

  • 其他的数据库操作命令

  切换数据库:

use 数据库名;

  例如:

use webdb_1;

  

1.3     DDL之表操作:table

1.3.1     创建表

  • 格式:
create table 表名(

   字段名 类型(长度) [约束],

   字段名 类型(长度) [约束],

   ...

);

类型:

    varchar(n)  字符串

    int         整形

    double      浮点

    date        时间

    timestamp   时间戳

约束:(详情查看第四章)

    primary key 主键,被主键修饰字段中的数据,不能重复、不能为null。

  例如:

###创建分类表

CREATE TABLE category (

  cid INT primary key, #分类ID

  cname VARCHAR(100) #分类名称

);

    

1.3.2     查看表

  • 查看数据库中的所有表:
格式:show tables;
  • 查看表结构:
格式:desc 表名;

例如:desc category;

1.3.3     删除表

  • 格式:drop table 表名;
例如:drop table category;

1.3.4     修改表结构格式:

  • alter table 表名 add 列名 类型(长度) [约束];

  作用:修改表添加列.

  例如:

#1,为分类表添加一个新的字段为 分类描述 varchar(20)

ALTER TABLE category ADD `desc` VARCHAR(20);
  • alter table 表名 modify 列名 类型(长度) 约束;

  作用:修改表修改列的类型长度及约束.

  例如:

#2, 为分类表的描述字段进行修改,类型varchar(50) 添加约束 not null

ALTER TABLE category MODIFY `desc` VARCHAR(50) NOT NULL;
  • alter table 表名 change 旧列名 新列名 类型(长度) 约束;

  作用:修改表修改列名.

  例如:

#3, 为分类表的分类名称字段进行更换 更换为 description varchar(30)

ALTER TABLE category CHANGE `desc` description VARCHAR(30);
  • alter table 表名 drop 列名;

  作用:修改表删除列.

  例如:

#4, 删除分类表中description这列

ALTER TABLE category DROP description;
  • rename table 表名 to 新表名;

  作用:修改表名

  例如:

#5, 为分类表category 改名成 category2

RENAME TABLE category TO category2;
  • alter table 表名 character set 字符集(了解);

  作用:修改表的字符集

  例如:

#6, 为分类表 category 的编码表进行修改,修改成 gbk

ALTER TABLE category CHARACTER SET gbk;

1.4     DML数据操作语言

1.4.1     插入表记录:insert

  • 语法:
-- 向表中插入某些字段

insert into 表 (字段1,字段2,字段3..) values  (值1,值2,值3..);

-- 向表中插入所有字段,字段的顺序为创建表时的顺序

insert into 表 values (值1,值2,值3..);
  • 注意:

    • 值与字段必须对应,个数相同,类型相同
    • 值的数据大小必须在字段的长度范围内
    • 除了数值类型外,其它的字段类型的值必须使用引号引起。(建议单引号)
    • 如果要插入空值,可以不写字段,或者插入 null。
  • 例如:
INSERT INTO category(cid,cname) VALUES(‘c001‘,‘电器‘);

INSERT INTO category(cid,cname) VALUES(‘c002‘,‘服饰‘);

INSERT INTO category(cid,cname) VALUES(‘c003‘,‘化妆品‘);

INSERT INTO category(cid,cname) VALUES(‘c004‘,‘书籍‘);

INSERT INTO category(cid) VALUES(‘c005‘);

INSERT INTO category(cname,cid) VALUES(‘耗材‘,‘c006‘);

1.4.2     更新表记录:update

  用来修改指定条件的数据,将满足条件的记录指定列修改为指定值

  • 语法:
--更新所有记录的指定字段

update 表名 set 字段名=值,字段名=值,...;

--更新符合条件记录的指定字段

update 表名 set 字段名=值,字段名=值,... where 条件;
  • 注意:

    • 列名的类型与修改的值要一致.
    • 修改值得时候不能超过最大长度.
    • 除了数值类型外,其它的字段类型的值必须使用引号引起

1.4.3     删除记录:delete

  • 语法:
delete from 表名 [where 条件];

或者

truncate table 表名;
  • 面试题:

  删除表中所有记录使用delete from 表名; 还是用truncate table 表名;

  删除方式:delete 一条一条删除,不清空auto_increment记录数。

  truncate 直接将表删除,重新建表,auto_increment将置为零,从新开始。

1.5     DOS操作数据乱码解决

  我们在dos命令行操作中文时,会报错

insert into category(cid,cname) values(‘c010’,’中文’);    

ERROR 1366 (HY000): Incorrect string value: ‘\xB7\xFE\xD7\xB0‘ for column ‘cname‘ at row 1

  错误原因:因为mysql的客户端设置编码是utf8,而系统的cmd窗口编码是gbk

1)查看MySQL内部设置的编码

show variables like ‘character%‘; 查看所有mysql的编码

  

2)需要修改client、connection、results的编码一致(GBK编码)

  解决方案1:在cmd命令窗口中输入命令,此操作当前窗口有效,为临时方案。

  set names gbk;

  解决方案2:安装目录下修改my.ini文件,重启服务所有地方生效。

原文地址:https://www.cnblogs.com/yzwang/p/8744264.html

时间: 2024-11-08 00:35:41

SQL语句学习(一)----通用语法,DDL,DML基础语句的相关文章

SQL 基本概念、通用语法与分类

一.SQL 概念  1.什么是 SQL Structured  Query Language 结构化查询语句 2.SQL 作用 (1)是一种所有关系型数据库的查询规范,不同的数据库都支持. (2)通用的数据库操作语言,可以用在不同的数据库中. (3)不同的数据库 SQL 语句由一些区别,称之为方言   二.SQL 的语法 (1)SQL语句可以单行或多行书写,每条语句以分号结尾. (2)可使用空格和缩进来增强语句的可读性. (3)SQL 中不区分大小写,关键字中认为大写和小写是一样的,关键字建议使

SQL中的四种语言DDL,DML,DCL,TCL

1.DDL(Data Definition Language)数据库定义语言statements are used to define the database structure or schema. DDL是SQL语言的四大功能之一.用于定义数据库的三级结构,包括外模式.概念模式.内模式及其相互之间的映像,定义数据的完整性.安全控制等约束DDL不需要commit.CREATEALTERDROPTRUNCATECOMMENTRENAME 2.DML(Data Manipulation Lang

Orecle Mysql 基本sql语句DDL & DML 介绍与总结 by 冰琉璃

先给大家普及一下安装mysql的简易方法:yum yum search mysql (查找关于mysql的内容) 找到后需要安装3个内容 mysql.i386 mysql-server.i386 mysql-devel.i386 安装过后 service mysqld start (启动mysql服务) 进入mysql mysql -h -u root -p 密码直接回车 开始密码为默然:以后可以在mysql里面改密码或者创建账号等操作 Mysql的sql语句大致分为4种  DDL (定义语句)

《C++primer(第五版)》学习之路-第五章:语句

[ 声明:版权所有,转载请标明出处,请勿用于商业用途.  联系信箱:[email protected]] 5.1 简单语句 1.绝大多数语句以分号结束.空语句只有一个单独的分号. 2.复合语句是指用花括号括起来的语句和声明的序列,复合语句也被称作块. 一个块就是一个作用域,在块中引入的名字只能在块内部以及嵌套在块中的子块里访问. 5.2 语句作用域 1.可以在if,switch,for和while语句的控制结构内定义变量.定义在控制结构当中的变量只在相应语句的内部可见,一旦语句结束,变量也就超出

mysql学习之三:sql语句学习

SQL 是一门 ANSI 的标准计算机语言,用来访问和操作数据库系统.SQL 语句用于取回和更新数据库中的数据.SQL 可与数据库程序协同工作,比如MySQL. MS Access.DB2.Informix.MS SQL Server.Oracle.Sybase 以及其他数据库系统. 不幸地是,存在着很多不同版本的 SQL 语言,但是为了与 ANSI 标准相兼容,它们必须以相似的方式共同地来支持一些主要的关键词(比如 SELECT.UPDATE.DELETE.INSERT.WHERE 等等).

SQL分类 DDL/DML/DCL

数据控制语言(DCL)是用来设置或者更改数据库用户或角色权限的语句,这些语句包括GRANT.DENY.REVOKE等语句,在默认状态下,只有sysadmin.dbcreator.db_owner或db_securityadmin等角色的成员才有权利执行数据控制语言. GRANT语句是授权语句,它可以把语句权限或者对象权限授予给其他用户和角色.DENY语句用于拒绝给当前数据库内的用户或者角色授予权限,并防止用户或角色通过其组或角色成员继承权限.REVOKE语句是与GRANT语句相反的语句,它能够将

mysql学习之四:sql语句学习2

创建数据库: CREATE DATABASE stefan; 删除数据库: DROP DATABASE stefan; 重命名数据库: 重命名数据库没有直接的办法. 已经不再使用的方法: RENAME DATABASE stefan TO LCDB; 创建表格语法: CREATE TABLE 表名称 ( 列名称1 数据类型, 列名称2 数据类型, 列名称3 数据类型, .... )   查看一个表格结构: DESCRIBE Persons;     ALTER TABLE 语句用于在已有的表中添

mysql学习之五:sql语句学习3

好吧,大家觉得这种字体还是比较好看,所有我们就换这种字体了. INSERT INTO 语句用于向表格中插入新的行. 语法 INSERT INTO 表名称 VALUES (值1, 值2,....) 我们也可以指定所要插入数据的列: INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....) Update 语句用于修改表中的数据. 语法: UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 DELETE 语句用于删除表中

SQL语句学习手册实例版

SQL语句学习手册实例版 表操作 例1  对于表的教学管理数据库中的表 STUDENTS ,可以定义如下: CREATE  TABLE  STUDENTS (SNO      NUMERIC (6, 0) NOT NULL SNAME    CHAR (8) NOT NULL AGE      NUMERIC(3,0) SEX      CHAR(2) BPLACE  CHAR(20) PRIMARY KEY(SNO)) 例2  对于表的教学管理数据库中的表 ENROLLS ,可以定义如下: C