DDL
1.创建数据库
mysql>create database dbname;
----------------------------------------------------------------------------
>show databases; 查询mysql的数据库
>use dbname; 使用某个数据库
>show tables; 库里都有哪些表
>desc tablename; 查看表的字段
-----------------------------------------------------------------------
>drop table tbalename;删除表
>delete from tablename;删除表内所有的记录
————————————————————————————————————————
修改表
修改字段的数据类型
>alter table tablename modify columnname varchar(10);写上更改后的数据类型即可
增加表字段
>alter table tablename add column columnname int;
删除表字段
>alter table tablename drop column columnname;
字段改名
> alter table tablename change oldcolumnname newcolumnname datatype;
更新记录
update tablename set field1=value1,field2=values2,....fieldn=valuen [where condition]
修改字段排列顺序
>alter table talename add columnname datatype after oldcolumnname;\
更改表名
>alter table oldtablename rename newtablename;
复制表
create table tablename as selct * from tablename2;
--------------------------------------------------------------------
主键外键约束在创建表时创建
主键
CREATE TABLE PLAYERS_XXL
(PLAYERNO INTEGER NOT NULL PRIMARY KEY,
外键
create table employee
(em_id char(5) not null,
em_name nvarchar2(20) not null,
em_sex char(1) not null,
em_age char(2) not null,
dep_id char(5) not null,
primary key (em_id),
foreign key(dep_id) references department(dep_id));
单独创建主键外键
ALTER TABLE Customers ADD CONSTRAINT PK_Customers PRIMARY KEY (cust_id);
customers 的主键是cust_id
ALTER TABLE OrderItems
ADD CONSTRAINT FK_OrderItems_Orders FOREIGN KEY (order_num) REFERENCES Orders (order_num);
————————————————————————————————————
创建索引
CREATE INDEX PLAY_MAT (索引名)
ON PLAYERS(PLAYERNO), MATCHES(PLAYERNO)
——————————————————————————————————
创建视图
CREATE VIEW TOWNS AS
SELECT DISTINCT TOWN
FROM PLAYERS;
————————————————————————————————————
插入数据
insert into tablename( column1,column2) values (数值1,数值2);
insert into tablename values ( ),();全字段赋值
insert into test1 select * from test1;
----------------------------------------------------------------------------
创建存储过程
create or replace procedure pro_aa(salekind in int,salesum in int)
as
var_sum2 int:= 0;
begin
select product_sum into var_sum2 from t1 where product_id=salekind;
if var_sum2 >= salesum
then
update t1 set product_sum=product_sum-salesum where product_id=salekind;
update t2 set sale_sum=sale_sum + salesum where product_id=salekind;
dbms_output.put_line('jiao yi shu liang que ren');
else
dbms_output.put_line('ku cun liang bu zu');
end if;
end;
/
-----------------------------------------------------------------------
创建函数
-----------------------------------------------------------------------------------------
1.修改mysql中root的密码:
shell>mysql -u root -p
mysql>SET PASSWORD FOR root=PASSWORD("root");
2.远程登录mysql server:(当然server必须首先给某个远程用户授权了)
shell>mysql -h host/ip -u user -p
3.打开数据库:use dbname;
显示所有数据库:show databases;
显示数据库mysql中所有的表:先use mysql;然后show tables;
显示表的列信息:describe user;(显示表mysql数据库中user表的信息);
4.创建一个可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令something做这个
GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY 'something' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO monty@"%" IDENTIFIED BY 'something' WITH GRANT OPTION;
flash privileges;
5.删除授权:
REVOKE ALL PRIVILEGES ON *.* FROM root@"%";
USE mysql;
DELETE FROM user WHERE User="root" and Host="%";
FLUSH PRIVILEGES;
6. 创建一个用户custom在特定客户端weiqiong.com登录,可访问特定数据库bankaccount
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON bankaccount.*
TO custom@weiqiong.com IDENTIFIED BY 'stupid';
7.重命名表:
ALTER TABLE t1 RENAME t2;
为了改变列a,从INTEGER改为TINYINT NOT NULL(名字一样),
并且改变列b,从CHAR(10)改为CHAR(20),同时重命名它,从b改为c:
ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);
增加一个新TIMESTAMP列,名为d:
ALTER TABLE t2 ADD d TIMESTAMP;
在列d上增加一个索引,并且使列a为主键:
ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a);
删除列c:
ALTER TABLE t2 DROP COLUMN c;
增加一个新的AUTO_INCREMENT整数列,命名为c:
ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX (c);
注意,我们索引了c,因为AUTO_INCREMENT柱必须被索引,并且另外我们声明c为NOT NULL,
因为索引了的列不能是NULL。
8.删除记录:
DELETE FROM t1 WHERE C>10;
6.改变某几行:
UPDATE t1 SET user=weiqiong,password=weiqiong;
7.使用name列的头10个字符创建一个索引:
CREATE INDEX part_of_name ON customer (name(10));
8.设置存储引擎
set storage_engine = InnoDB;
-- set storage_engine = MyISAM;
-- set storage_engine = Falcon;
-- set storage_engine = PBXT;
-- set storage_engine = Maria;
select CONCAT('storage engine: ', @@storage_engine) as INFO;查看当前使用的是那样的存储引擎;
9.查看当前的数据库
. 通过函数database()实现
mysql> SELECT database();
. 通过show tables实现
mysql> show tables;
注:注意查看列头形式, 格式为:Tables_in_[db_name]
www.2cto.com
. 通过status实现
mysql> status;
注:注意结果中的"Current database"信息