SQL之数据定义语言DDL和数据操纵语言DML

SQL语言之DDL:数据定义语言

--建表语句:create table tableName(colName Type1,colName Type2......);

--练习1:创建表 persons 字段:pid int,pname varchar(20),age int(3),gender char(1)

create table persons(pid int,pname varchar(20),age int(3),gender char(1));

use bd1802

--显示表结构

--desc tableName

desc persons;

--show columns from tableName;

show columns from person;

--添加表字段语句:向表最后追加新字段

--格式:alter table tableName add (colName Type);

--练习2:给persons表添加新字段 birth timestamp

alter table persons add (birth timestamp);

--删除表字段语句

--格式:alter table tableName drop colName;

--练习3:删除persons 中的字段gender,再查看表结构

alter table persons drop gender;

--修改表字段类型

--格式:alter table tableName modify colName newType;

--练习4:修改表persons 的字段pid长度为4再查看表结构

alter table persons modify pid int(4);

--修改表字段名称

--格式:alter table tableName change oldColName newColName newType;

--练习:修改表persons 的字段pname为pnickname

alter table persons change pname pnickname varchar(20);

--修改表名

--格式:alter table oldName rename newName;

--练习:将表名persons改成student

alter table persons rename student;

--清空表结构(清空表里的数据 无法回收)

--格式:truncate table tableName;

truncate table teacher;

--删除表结构,即删除表对象

--格式:drop table tableName

--练习:创建一个表temp_01 字段有 tid integer(4) tname varchar(10)

create table temp_01 (tid integer(4),tname varchar(10));

--练习:删除表temp_01;

drop table temp_01;

--创建数据库

--格式:create database databaseName default character set character

--练习:创建一个数据库 database_temp;

create database database_temp;

--删除数据库

--格式:drop database databaseName;

--练习:删除数据库 database_temp;

drop database database_temp;

 

SQL语言之DML:数据操纵语言

--插入数据

--格式:insert into tableName values(value1,value2,...);必须按照建表字段顺序赋值

--格式:insert into tableName(colName1,colName2……)value(value1,

value2……),给指定字段赋值

--练习:建表teacher,字段,tid int(4),tname varchar(20),tage int(2),birth date

create table teacher(tid int(4),tname varchar(20),tage int(2),birth date);

--练习:插入一条数据  1001,高圆圆,38,'1983-10-12'

insert into teacher values(1001,'高圆圆',38,'1983-10-12');

--练习:插入一条数据  1002,夜华,40

insert into teacher values(1002,'夜华',40,null);

insert into teacher(tname,tid,tage)values('白浅',1003,100);

select * from teacher;

 

where 条件:  对表中的数据加条件进行限制,起到过滤的作用。

格式:  where  colName 关系运算符 value

          [or|and 条件2]

 

       关系运算符:

          >,>=,<,<=,

      等于:=,

      不等于:!= 或 <>

 

null值操作:

   1:在条件中,不能使用=或者!= 或者<>,而是使用 is或者is not

   2:在select子句中,使用关系运算符

 

--update关键字:修改表中的数据

--格式:update tableName set colName1=value1,colName2=value2 [colName=value3][where 条件];

--练习2:修改表中temp_t02中的tid为1002的address为英国,人名为michel

update temp_t02 set address='英国',tname='michel' where tid=1002;

select * from temp_t02;

--练习3:将生日为null的tname改为'general'

--null值操作:使用is|is not

--在update子句中可以使用关系运算符

update temp_t02 set tname='general' where tbirth is null;

--练习4:将tid为1001的tbirth改为'2008-8-8'

update temp_t02 set tbirth='2008-8-8' where tid=1001;

--练习5:将tid为1002的address改为null

update temp_t02 set address = null where tid=1002;

 

--数值类型的学习

--1,数值类型:tinyint  smallint  mediumint  int/integer  bigint  float double decimal

--tinyint:1字节大小,范围为-128~127

--smallint:2字节大小,范围-32768~32767

--insert into temp_t03 values(32768);超范围

--int/integer:常用数值类型,占4字节,范围:-2147483648~21左右

--bigint:大整数类型,范围与java语言的long的范围类似

--float与double

--float:单精度类型,占4字节大小

--不规定长度时,默认四舍五入,默认保留0或1位

--规定长度时,float(m,n) m表示数据有效位数,n表示小数点后保留的位数

--insert into salary_t01 values(10000.5678);//超位数,整数位最多为m-n

--float(m)与float(m,0)一致

--double:双精度类型,占8字节大小

--有效长度写法:double(m,n):有效位数m,小数点后保留n位,整数位m-n

--decimal:与float和double的用法一样,decimal(m,n)

--日期类型:date,time,datetime,timestamp,year

--date:日期类型,默认格式:yyyy-mm--dd 范围是1000-1-1/9999-12-31

--time:默认格式:HH:mm:ss 范围1:-838:59:59~838:59:59

--范围2:写年月日:23:59:59

--datetime :默认格式:yyyy-mm-dd hh:mm:ss

--范围:1000:1:1  -23:59:59/9999:12:31 23:59:59

--timestamp:时间戳类型

--范围:1970-01-01 00:00:00/2037

--year:年 默认格式yyyy 范围1901-2105

--字符串类型:char ,varchar,tinyblob, tinytext,blob,text,mediumblob,

mediumtext,longblob,longtext

--char定长字符串类型,范围0-255个字节

--char(10):插入数据时,最多插入10个字节,如果插入的字节不足,10字节时,也占内存10字节大小

--定义数据类型时,最长长度为255

--varchar:可变字符串类型,范围0-255

--规定长度时,最大值255

--varchar(10):表示最多存储10个字节,如果不满足10个字节,在内存中按照实际字节数占用

--blob: 一种字符类型,在内存中显示二进制 范围:0~65535

--longblob:极大字符串类型,存储的是字符对应的字节码

--longtext:极大字符串类型,存储的是字符

--上述两种类型的字节范围,0-java语言的int最大值的2倍+1

--mysql常用函数学习

--虚表:数据库为程序员提供的一个没有字段的表

--作用:一般用来当做一个查询语句的基表

--mysql数据库特点:在运算时,可以不基于表操作

--mysql常用函数学习

--一.常用字符串

--1.ascii(str):返回指定字符串的第一个字符的ascii码

--字符串为空字符串时,返回0

--字符串为null,返回null

--2.ord(str):如果字符串的第一个字符是单字符时,与单字符ascii(str)一样

--如果不单字节,如UTF8的中,是第三个字节

--返回值为:第一个字节*256+第二个字节*256+第三个字节

--3.conv(n,from_base,to_base),将from——base进制中的字符n转换成to_base进制下的表示方式

--16进制中的字符a转换成2进制来表示

--4.bin(n),oct(n),hex(n)

--将数值n转成对应的二进制,八进制,十六进制

--5.char(n..)返回多个ascii码组成的字符

--6.content(str1,str2..):将多个字符串拼接成一个字符串

--如果有一个参数为null,返回的是null

--length(str)/octet_length(str)

--上述两个函数,返回的是默认字符集下的字符串的所有字节数

--char_length(str)/character_length(str)

--这两个函数都是返回字符串的字符长度

--练习:统计一下'上海自来水来自海上'的字节长度

select char_length('上海自来水来自海上');//9

select character_length('上海自来水来自海上');//9

select length('上海自来水来自海上');//27

select octet_length('上海自来水来自海上');//27

猜你喜欢

转载自blog.csdn.net/qq_42721694/article/details/82530792