SQL⽤法操作合集
什么软件可以运行c语言⼀、表的创建
1、创建表
格式:
1 CREATE TABLE 表名
2 (列名数据类型(宽度)[DEFAULT 表达式][COLUMN CONSTRAINT],
3 ...
4 [TABLE CONSTRAINT]
5 [TABLE_PARTITION_CLAUSE]
6 );
例⼦:
1 CREATE TABLE book(
mysql语句多表查询2 book_number VARCHAR2(5),
3 book_name VARCHAR2(30),
4 pub_com_number VARCHAR2(2),
5 author VARCHAR2(10),
6 publishing_date DATE,
7 volume INT(3),
8 price FLOAT9 );
通过上⾯的SQL语句,我们就在数据库中创建了⼀个简单的数据表,这⾥我们使⽤mysql来进⾏演⽰
sql的order by的排序规则2、通过现有的表创建表flush的用法和例句
CREATE TABLE tablename(column_name1,column_name2) AS SQL 查询语句
Eg:
(1)完全复制表结构和数据
create table book1 as select * from book;
PS.关于查看数据表结构,有两种⽅式:
a.DESCRIBE(简写DESC)`table_name`;
b.SHOW FULL COLUMNS FROM `table_name`;
可以看出,两者的区别使⽤SHOW FULL COLUMNS还会显⽰数据表的⼀些键还有字段注释。
说到这⾥,顺带说说在win下⾯如何使⽤mysql的dos终端:
a.进⼊所在⽬录
b.执⾏ -u⽤户名 -p密码
c.选择你要进⾏操作的数据库,语法为:use 数据库名,如果你不知道都有哪些数据库,可以使⽤show databases;来查看
d.查看数据库中的数据表,使⽤show tables;
(2)只复制数据表中的某些字段建表
create table copy_table_name as select `column_name1`,`column_name2`,..., from table;
如果你想在复制的时候对这些字段进⾏重命名,可以这样做
create table copy_table_name(`new_column_name1`,`new_column_name2`,..) as select `column_name1`,`column_name2`,... From table;
不过这种语法在MySQL⾥不⽀持,在Oracle中⽀持
(2)删除已创建的数据表
DROP TABLE table_name;
⼆、表的结构修改
多条件vlookup函数的使用方法1、为数据表增加新列,即增加⼀个字段
ALTER TABLE `table_name`
ADD `column_name` dataType(maxLength) [DEFAULT `默认值`][字段约束];
(中括号意为可选)
2、对数据表某⼀列即某个字段进⾏修改
语法跟增加差不多只是把ADD关键字改成MODIFY
ALTER TABLE `table_name`
MODIFY `column_name` dataType(maxLength) [DEFAULT `默认值`][字段约束];
注意:字段名⽆法被修改!!!如果要改变列名,只能先删除该列,然后重新增加。其他部分都可以进⾏修改,如果没有给出新的定义,表⽰该部分属性不变。
修改列定义还有以下⼀些特点:
(1) 列的宽度可以增加或减⼩,在表的列没有数据或数据为NULL时才能减⼩宽度。
(2) 在表的列没有数据或数据为NULL时才能改变数据类型,CHAR和VARCHAR2之间可以随意转换。
(3) 只有当列的值⾮空时,才能增加约束条件NOT NULL。
(4) 修改列的默认值,只影响以后插⼊的数据。
3、删除数据表的⼀列即⼀个字段
ALTER TABLE `table_name` DROP COLUMN `column_name`;
三、表的数据更新
1、插⼊
INSERT INTO `table_name`(`column_name1`,`column_name2`,..) VALUES (val1,val2,..);
遇到字段很多的表,如果要插⼊全部字段的值,⼀个⼀个字段名声明很⿇烦,可以直接省去这⼀步
INSERT INTO `table_name` values (val1,val2,...)
有的时候我们想从⼀个表中复制数据数据过来,可以吗?没问题
INSERT INTO `table_name` (`column_name1`,`column_name2`,..) SELECT
(`column_name1`,`column_name2`,..) FROM `other_table_name`;
2、修改数据
使⽤UPDATE关键字对数据进⾏修改,不过往往需要⽤WHERE⼦句加限制条件,不然会修改所有的⾏。
UPDATE `table_name` SET `column1` = val1,`column2` = val2,... WHERE condition;
特殊⽤法:通过其他查询结果更新数据
logisim里splitter
UPDATE 表名 SET(字段名1, 字段名2, ...)=SELECT (字段名1, 字段名2, ...) FROM 另外的表名WHERE条件;
3、删除数据
删除数据⼀样⾮常敏感,在执⾏之前⼀定要检查是否有where条件,否则会删除数据表中的全部数据。
DELETE FROM `table_name` WHERE condition;
如果我们想清空数据表中的所有数据,可以⽤:
DRUNCATE `table_name`
这⾥你可能会⾃然⽽然想到,我⽤delete from `table_name`不也可以达到相同的效果么?确实,但其实两者还是有⼀些区别的:
两者均是删除数据表中全部数据,但是使⽤truncate的速度更快,且使⽤的系统和事务⽇志资源少,delete语句每删除⼀⾏,都要在事务⽇志中为所删除的每⾏记录⼀项;⽽truncate通过释放存储表数据所⽤的数据页来删除数据,并只在事务⽇志中记录页的释放。Truncate 删除内容释放空间,delete删除内容不释放空间。
4、查询数据
(1)指定索引字段
SELECT 字段名列表 FROM 表名 WHRER 条件
(2)显⽰计算列
查询语句中可以有算术表达式,包括+、-、*
(3)使⽤别名
(4)字符串拼接
在oracle中使⽤“||”,在MySQL中则使⽤concat()函数
要达到相同的效果上图sql语句在oracle中的⽤法应该为:
select ‘书名为:’||`book_name`||’ 价格为:’||`price` as `descript` from book2;(5)消除重复
如果在显⽰结果中存在重复⾏,可以使⽤关键字DISTINCT消除重复显⽰
SELECT DISTINCE 字段名 FROM 表名
加⼊我们对多个字段去重,那么显⽰的结果是多个字段的组合不重复结果
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论