2 SQL基础 |
2.1 SQL(结构化查询语句)(IBM提出 ANSI ISO研发) |
数据定义语言(DDL Data Defined Language) create table | database |… alter table | database | … drop table | database |… 数据操作语言(DML Data Manipution Language) Insert Update Delete (增删改) 数据查询语言(DQL Data Query Language ) Select (查) 数据控制语言(DCL Data Control Language) Grant Revoke Commit deny |
Mysql的数据类型 整形 BIT tinyint int(默认为有正负符号的,除非声明为unsigned) 浮点型 float double decimal(7,3) 1234.567 ps: decimal(7,3)中,7代表去掉小数点后总的位数 3代表小数位 字符型 char(M) 长度固定 N<M 仍然占用M个字节 浪费存储空间 存取速度快 varchar(M) 长度不固定 N<M 占用N 个字节 节省存储空间 存取速度慢 text 文章等类型 查询不区分大小写 ENUM 枚举类型 单项 Clon ENUM(‘f’,’m’) SET 枚举类型 多项’a,b,c’ 可添加 ‘abc’要加单引号 布尔型 Boolean 0代表假 非0代表真 日期型 date(’2017-03-03’) time(’10:10:10’) Datetime(’2017-03-03 10:10:10’) year (4位数’2017’ 2 位数’17’)
Mysql的帮助提示 help decimal; show tables; show create table tt1; desc table名称;description描述 (Mysql外部查) mysqlshow –u root –p root –? mysqlshow –u root –p root –-help
Mysql的版本查询 Select version(); 进入mysql查询 (在MySQL 外部查) mysql --version mysql -V mysqlshow –u root –p 密码 –version mysqlshow –u root –p 密码 -V mysqlshow –u root –p 密码 –-count test tt
Mysql的字符集设置 在创建数据库的同时指定编码方式:CREATE DATABASE [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset; Create database test default character set gbk; 数据库字符集设置 Create table t1( Id int , Name char(10) ) default charset= gbk; 表格字符集设置 alter table emp charset=gbk;修改整个表格的字符集 character set 数据读写的字符集要一致就不会出现 windows gbk gb2312 Linux utf-8 第一范式: 一个属性拆分成多个独立的属性 南京市栖霞区仙林街道 第二范式: 一个表可拆分成多个表 学号 姓名 课程 学分 成绩 第三范式: 一个表有唯一的主键 学号 姓名 宿舍编号 宿舍区 宿舍楼 房间号 |
2.2 DDL (定义和管理数据库和各种数据库对象的数据) |
DDL数据库的操作命令 create database 数据库名字; drop database 数据库名字; alter database 数据库名字;很少用 use database 使用某一个数据库 show databases; Create database test default character set gbk;
DDL数据库表格的操作命令 1. create create table 名字( 列名 类型, 列名 类型, 列名 类型 ); CREATE TABLE `user` ( `User` char(16) COLLATE utf8_bin NOT NULL , `Select_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N', `ssl_cipher` blob NOT NULL, `max_user_connections` int(11) unsigned NOT NULL DEFAULT '0', `authentication_string` text COLLATE utf8_bin, PRIMARY KEY (`User`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Users and global privileges';
列属性的约束
constraint 约束名 foreign key (外键列名)references 被参考表名(被参考列) constraint fk_t1 foreign key(fid) references t1(uid) alter table tte add constraint ft foreign key(uid) references t3(id)
age int check(age between 18 and 25), 注意:先有主键,后有外键。主外键属性保持一致,主外键名不能重复。 自增和默认不能同时使用 列级约束 null not null 表级约束 primary key froreign key unique check
create table tt4( id int, name char(10), unique(id,name)); mysql>show tables; 查看数据库中所有的表 mysql>desc 表名; describle mysql>show create table 表名;
2.drop drop table if exits employees; 删除表: mysql>drop table 表名;//删除表结构及表中的数据
3.alter //增加一列 add alter table 表名 add 列名 类型; mysql>alter table student add address varchar(50); //修改一列 modify alter table 表名 modify 列名 修改后的类型; mysql>alter table student modify address varchar(60); //删除一列 drop alter table 表名 drop 列名; mysql>alter table student drop address; //为列重命名 change alter table 表名 change 原列名 新列名 列类型; mysql>alter table student change address addr; //为表重命名 rename alter table 表名 rename to 新表名; alter table 表名 rename 新表名; mysql>alter table student rename to stu; //修改整个表格的字符集 alter table emp charset=gbk; 注意:在实际使用中,一般表建立之后,不会修改表中结构。 ALTER TABLE `emp` MODIFY COLUMN `job` char(10) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL AFTER `ename`, MODIFY COLUMN `deptno` int(11) NULL AUTO_INCREMENT AFTER `comm`, DROP PRIMARY KEY, ADD PRIMARY KEY (`empno`, `deptno`);
4 Show desc Show tables; Show create table 名字; Desc 表格名称; |
SQL基础(一)
最新推荐文章于 2023-11-24 18:23:54 发布