数据库基本语法-库和表的操作


创建数据库:

	create database 数据库名;

删除数据库:

   drop database 数据库名;

选择数据库:

   use 数据库名;

创建MySQL数据表的SQL通用语法:

CREATE TABLE table_name (column_name column_type);

实例 创建数据表runoob_tbl:

CREATE [temporary](#临时表) TABLE IF NOT EXISTS runoob_tbl(
   runoob_id INT UNSIGNED auto_increment,
   runoob_title VARCHAR(100) NOT NULL,
   runoob_author VARCHAR(40) NOT NULL,
   PRIMARY KEY ( runoob_id )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

1.如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
2.AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
3.PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
4.ENGINE 设置存储引擎,CHARSET 设置编码。
5.创建 MySql 的表时,表名和字段名外面的符号 ` 不是单引号,而是英文输入法状态下的反单引号,也就是键盘左上角 esc 按键下面的那一个 ~ 按键,坑惨了。反引号是为了区分 MySql 关键字与普通字符而引入的符号,一般的,表名与字段名都使用反引号。
6.临时表在关闭控制台时会自动销毁,或者像删除普通表一样删除,
在高级语言中建立时,程序运行完之后就会自动删除。

7.复制表
只复制表结构到新表

create table 新表 select * from 旧表 where 1=2

或者

create table 新表 like 旧表 

复制表结构及数据到新表

create table新表 select * from 旧表 

删除:

删除表内数据,用 delete。格式为:

delete from 表名 where 删除条件;

实例:删除学生表内姓名为张三的记录。

delete from  student where  T_name = "张三";

清除表内数据,保存表结构,用 truncate。格式为:

truncate table 表名;

实例:清除学生表内的所有数据。

truncate  table  student;

删除表用 drop,就是啥都没了。格式为:

drop  table  表名;

实例:删除学生表。

drop table student;

删除列,用alter table 表名 drop 列名,实例为:

ALTER TABLE testalter_tbl  DROP i;#删除表的 i 字段

删除默认值,用

alter table 表名 alter 列名 drop default;

实例:

ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;

1、当你不再需要该表时, 用 drop;
2、当你仍要保留该表,但要删除所有记录时, 用 truncate;
3、当你要删除部分记录时, 用 delete。

删除重复数据
添加 INDEX(索引) 和 PRIMAY KEY(主键)这种简单的方法来删除表中的重复记录:
mysql> ALTER IGNORE TABLE person_tbl ADD PRIMARY KEY (列名);

插入:

INSERT INTO table_name ( field1, field2,...fieldN ) #表名
                       VALUES		#固定语法
                       ( value1, value2,...valueN );#值

如果数据是字符型,必须使用单引号或者双引号,如:“value”。
INSERT IGNORE INTO可以跳过重复数据;达到在间隙中插入数据的目的。
实例:

mysql> INSERT INTO runoob_tbl
    -> (runoob_title, runoob_author, submission_date)
    -> VALUES
    -> ("JAVA 教程", "RUNOOB.COM", '2016-05-06');

添加新的一列:

Alter table 表名 add 列名 [这一列的定义] 位置(first  /after 列名);

实例:

ALTER TABLE testalter_tbl ADD i INT FIRST;

修改数据:

UPDATE 命令修改 MySQL 数据表数据的通用 SQL 语法:

UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]

1.你可以同时更新一个或多个字段。
2.你可以在 WHERE 子句中指定任何条件。
3.你可以在一个单独表中同时更新数据。

实例: #修改runoob_tbl表runoob_id为2的runoob_title的为php

update runoob_tbl set runoob_title="php" where runoob_id = "2";

修改列
属性:

alter table 表名 modify 列名 新类型 约束;
实例:ALTER TABLE testalter_tbl MODIFY c CHAR(10);

名称:

alter table 表名 change 列名 新列名 类型;
实例:ALTER TABLE testalter_tbl CHANGE i j INT;

默认值:

alter table 表名 alter 列名 set default 新值;
实例:ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;

修改数据表引擎:

Alter table 表名 engine = 新引擎;

修改表名:

Alter table 表名 rename to 新表名;

查询数据:

SELECT column_name,column_name
FROM table_name[WHERE Clause][LIMITN][OFFSETM]

1.查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
2.SELECT 命令可以读取一条或者多条记录。
3.你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所 有字段数据:select * from runoob_tbl; #数据表 runoob_tbl 的所有记录:
4.你可以使用 WHERE 语句来包含任何条件。
5.你可以使用 LIMIT 属性来设定返回的记录数。
6.你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认 情况下偏移量为0。

查询表:show tables;
查询表结构:desc 表名;
查询表引擎:show table status like ‘表名’;
查询数据库:show databases;
查询库中所有表引擎:show table status from 库名;
查询索引:SHOW INDEX FROM 表名;
查询创建数据表时的语句:show create table 表名;

查询不重复列的语句:SELECT DISTINCT job_id FROM employees;
查询时将数据用特定格式输出
select CONCAT(colum_name1,’,’,ccolum_name2,’,’,colum_nams) as name
from table_name

导入/出数据:

导出
MySQL中你可以使用SELECT…INTO OUTFILE语句来简单的导出数据到文本文件上。
使用 SELECT …INTO OUTFILE …命令来导出数据,具体语法如下。

mysql> SELECT * FROM tablename INTO OUTFILE 'target_file' [option];

其中 option 参数可以是以下选项:

命令参数说明
fields terminated by ‘字符’字段分隔符,默认字符为制表符’\t’
fields [optionally] enclosed by ‘单字符’字段引用符,加上optionally后在数字类型上不会有引用符号
fields escaped by ‘单字符’转义字符,默认为’’
lines starting by ‘字符’每行前都加此支付,默认为空
lines terminated by ‘字符’行结束符,默认为’\n’

select * from emp into outfile ‘/tmp/emp.txt’ fields terminated by “,” enclosed by ‘"’;

导入
在导入纯文本数据之前,需要事先创建好表结构和纯文本数据:
纯文本数据每一项之间用Tab键进行分隔,如果该字段为NULL,则用/N表示。

load data local infile  "/var/lib/mysql/test/data.txt"  into table person(name,city,salary); 

注意data.txt存放的位置,其他地方会报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值