SQL基础(一)

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';

 

列属性的约束

  1. 自增  auto_increment
  2. 主键(复合主键)primary key 默认为非空 唯一primary keystuid,carid
  3. 外键  foreign key  

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)

  1. 索引  index
  2. 注释  comment
  3. Default  
  4. 是否为空 null not null
  5. 唯一 unique
  6. 检查check

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  表格名称;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值