SQL基础 一
关键词: SQL , 基础,SQL入门,SQL经典
Today,binge将和大家一起学习SQL的基础,学过的算是复习,没学过的你更得认真看了,(*^__^*) !!
1. 前言
当今时代任何操作都涉及数据,用来管理和检索数据的系统就是数据可管理系统(DBMS),数据库按存储类型主要分为:网状数据库、关系型数据库、树状数据库、面向对象数据库等。现在应用最为广泛的便是关系型数据库,下面以及以后我们都将学习关系型数据库。现在广泛应用的关系型数据库有:sql server、MySQL、Oracle、Access等等。虽然有如此之多的系统有我们选择,而且各有各的特点,各有各的差异、令我们不知道该学习哪个。但是俗话说万变不离其宗在我看来最然他们有差异,但是他们最基本的原理、思路是相同的,只要我们将基础学好了,那么在学习这些将会变的很容易!那么让我们开始进入SQL的世界吧!!
2. 概念
2.1 什么是SQL
SQL:结构化查询语言,它是与关系型数据库进行通信的标准语言,第一个发布SQL产品的便是ORACLE-甲骨文公司。
2.2 什么是数据库
数据库就是数据的集合,它不仅能够存储信息、而且能够以高效的方式检索其中的信息。比如电话簿就是一个数据库,我们不用考虑数据(联系信息)该放到哪,用到时该去哪找!我们只需要将数据提交给电话簿,它会帮我们管理数据存储数据,当我们需要查看某条数据时,只需要将想查的字段(比如:姓名)发给电话簿,电话簿就会自动检索,并把结果呈现给我们。
数据库必须被维护。比如你的联系人换了电话号码,或者不想在联系某个人,电话簿里的项目就需要删除或添加。
2.3 什么是表
表示数据存储的表现形式,每个表可以分为更小的项,这些项被称为”字段“。一个字段就是表里的一列。比如学生信息表,姓名、学号都是表中的一个字段、一列。一条记录就是表里的一行,比如:yuanbinbin 124081001。
2.4 什么是关系型数据库
关系型数据库由被称为表(table)的逻辑单元组成,这些表之间可以相互关联。我将以学生信息管理系统为例为大家解释。关系型数据库记录了学生信息、成绩信息以及课程信息。则该数据库有学生表、成绩表、以及课程表。关系是由各个表之间的关联所体现的。如:学生表与课程是多对多的关系(一个学生要学多门课程、一门课程可以由多个学生学习)。
3. SQL的命令类型
根据数据库的功能,SQL可分为:数据定义(DDL)、数据操作(DML)、数据查询(DQL)、数据控制(DCL)、数据管理命令、事务控制命令。
3.1 数据定义语言(DDL)
创建数据库
create database 数据库名。例如:create database stuinfodb;
删除数据库
drop database 数据库名。例如:drop database stuinfodb;
显示数据库
show databases;
选择数据库
use database_name;
创建表
create table [if not exists] stuinfo( //if not exists可不写
id varchar (n),
name varchar (n),
classid int,
primary key(id),//设置主键可不写。
foreign key(classid) references classinfo);//设置外键classid为classinfo表的主键
显示表结构
方法1:desc table_name;
方法2:show columns from table_name;
方法3:describe table_name;
修改表
重命名表,从t1到t2:
alter table t1 rename t2;
改变表t2中的列a,从integer改为 varchar not null,并且改变列b,从char(10)改为char(20),同时重命名它,从b改为c:
alter table t2 modify a varchar not null,change b c char(20);
增加一个新integer列,名为d:
alter table t2 add d integer;
在列d上增加一个索引,并且使列a为主键: (索引是不可修改的,想更改必须重建!!)
alter table t2 add index(d) , add primary key(a);
设置已存在列为主键,前提该表还没有主键
alter table table_name add primary key(id);
创建时指定主键和自增属性
create table t_name( intCId int auto_increment primary key,
varCNo varchar(20) ,
varCName varchar(30));
删除主键
alter table table_name drop primary key;
删除索引:
alter table t2 drop index d
删出列c:
alter table t2 drop column c;
增加一个新的AUTO_INCREMENT整数列,命名为c:
alter table table_name add c int primary key auto_increment;
注意:在MySQL中,auto_increment只适用于主键,其他不是主键的字段不能设置自增属性。
删除c自增属性
alter table modify c int;
删除表
drop table if exists table_name;
创建视图
create view view_name as select statement
删除视图
drop view viewname;
尊重原创,写博不易,转载请注