from: http://blog.youkuaiyun.com/mxxiang/article/details/829445
基本语法
数据库的创建
create database datenbankname; //创建新的数据库,datenbankname为库名.
查询数据库命令
show databases; //查询已有的数据库,防止重名.
打开数据库
use datenbankname; //打开数据库名为datenbankname.
删除数据库
drop database datenbankname; //删除数据库名为datenbankname
创建数据表
create table table_name(
column_name1 type [modifiers],
column_name2 type [modifiers],...
);
//column列是表中一行数据库的单个单元.
not null 修饰符表示该列不能包含任何null值,简单的说就是不能为空.
例外:如果该列被定义为auto_increment,则null值将导致一个自动产生的值.
为列指定了默认值的情况.
删除数据表
drop table table_name;
插入数据
insert into table_name (column1,column2,...columnN)
values (value1,value2,...valueN)
非标准
insert into book set title='the vampire lestan',author='anre rice';
insert into foods (name,fat)
select food_name ,fat_grams from recipes
通过使用其他某个表(或一组表)中的数据填充新表以插入数据.
在这一行语法中,不能包含order by修饰词,也不能从insert出现在其中的表中进行选择.
删除
delete from table_name [where clause]
delete table1,table2,...,tablen
from table1,table2,...,tablen
[where clause]
查询
select colum1,colum2,...,columN
from table1,table2,...,tableN
[where clause]
database()
返回当前数据库的名称.
/////////////////////////////////////////////////////////
举例详解
打开MYSQL窗口
有密码输入密码
如果没有数据库,新建:这里我们新建一个名叫"datenbank"数据库
>create database datenbank;
紧接着要打开数据库
>use datenbank
新建的数据里是空的,所以要建数据表,取个名叫做userinfo
>create table userinfo (
>id int(10) unsigned auto_increment not null, //一般做主键用,每张数据表最好有一个id,而且自动分配.unsigned是指数字不为负.
>username varchar(50) not null, //使用者姓名,类型用的是varchar,字符型,当存放的字节不能超过225,而且它是给几个字符就取字符,后面就自动不要了.
>password varchar(50) not null, //同上
>info blob, //这里可以放一些大的文本内容.
>joindate varchar(50), //这里存放的时间,可以用字符型,也可用时间类型,如datetime
>primary key(id)); //千万不要漏了设置主键
>alter table userinfo add text blob; //增加一个新的字段.但在MYSQL里没有删除一个字段,你可以更改一个字段.
>insert into userinfo (username,password,info,joindate) values ('gssqtn','gssqtn','info',now()); //字符型是一定要加上引号的,否则会出错.这是插入一条新的记录.
>update userinfo set username='arlene' where id=1; //修改原有记录,如果不加条件,则把当前数据表里的内容username全部改写为arlene.
>delete from userinfo; //删除数据表里的内容,如果不加条件则完全删除
>delete from userinfo where id=1; //删除id=1的记录
>select * from userinfo; //查看数据表记录,加条件可以指定查看符合条件的记录.
>select * from userinfo order by id; //查看数据表记录,并且按照id排序,这是从小到大.如果要反向查看,可以加上desc
>select * from userinfo oder by id limit 0,10; //查看数据表记录,并且按照 id 排序,并且显示前面十条记录.limit是极限的意思.
>show tables; //查看打开的数据库有什么数据表.
>drop table userinfo; //删除数据表userinfo
重要sql语句
1.增加一个字段(一列)
alter table table_name add column column_name type default value; type指该字段的类型,value指该字段的默认值
例如:alter table mybook add column publish_house varchar(10) default '';
2.更改一个字段名字(也可以改变类型和默认值)
alter table table_name change sorce_col_name dest_col_name type default value; source_col_name指原来的字段名称,dest_col_name指改后的字段名称
例如:alter table Board_Info change IsMobile IsTelphone int(3) unsigned default 1;
3.改变一个字段的默认值
alter table table_name alter column_name set default value;
例如:alter table book alter flag set default '0';
4.改变一个字段的数据类型
alter table table_name change column column_name column_name type;
例如:alter table userinfo change column username username varchar(20);
5.向一个表中增加一个列做为主键
alter table table_name add column column_name type auto_increment PRIMARY KEY;
例如:alter table book add column id int(10) auto_increment PRIMARY KEY;
6.数据库某表的备份,在命令行中输入:
mysqldump -u root -p database_name table_name > bak_file_name
例如:mysqldump -u root -p f_info user_info > user_info.dat
7.导出数据
select_statment into outfile"dest_file";
例如:select cooperatecode,createtime from publish limit 10 into outfile"/home/mzc/temp/tempbad.txt";
8.导入数据
load data infile"file_name" into table table_name;
例如:load data infile"/home/mzc/temp/tempbad.txt" into table pad;
9.将两个表里的数据拼接后插入到另一个表里。下面的例子说明将t1表中的com2和t2表中的com1字段的值拼接后插入到tx表对应的字段里。
例如:insert into tx select t1.com1,concat(t1.com2,t2.com1) from t1,t2;