一、帐号与权限。
设定 root 和其他 user 的密码。
mysqladmin -u root password '新密码'
mysqladmin -u root -p
enter password: 此时再输入密码(建议采用)
use mysql;
mysql> update user set password=password('新密码') where user='root';
只改 root 的密码,如果没有用 where ,则表示改全部 user 的密码。
mysql> flush privileges; 在 mysql 资料库内,一定要用 flush 更新记忆体上的资料。
删除空帐号。
mysql> delete from user where user =
mysql> flush privileges;
建立新帐号。
mysql> grant 权限 on 资料库或资料表 to 使用者 identified by '密码';
权限。资料库或资料表。
*.*所有资料库里的所有资料表。
* 预设资料库里的所有资料表。
资料库。* 某一资料库里的所有资料表。
资料库。资料表某一资料库里的特定资料表。
资料表预设资料库里的某一资料表。
设定/修改权限。
用 root 登入 mysql
mysqladmin -u root -p
enter password:
mysql> grant all on db35.* to s35@'localhost' identified by 's35';
把 db35 这个资料库(含其下的所有资料表),授权给 s35,从 localhost 上来,密码为s35
mysql> grant all on *.把所有资料库及资料表授权给别人,太危险了!
mysql> grant all???on www.* to '*identified by ''
把 www 这个资料库(含其下的所有资料表),授权给任何机器任何人,无密码(通常给不特定人士使用)
mysql> flush privileges; (最後一定要强迫更新权限)
二、资料库/资料表/栏位的操作。
建立资料库 create database 资料库名;
语法:create database db_name
使用资料库 use 资料库名;
语法:use db_name
删除资料库 drop database 资料库名;
语法:drop database [if exists] db_name
建立资料表。
create table 资料表名 (栏位1 资料型态, 栏位2 资料型态, …
语法:create table [if not exists] tbl_name (create_definition,…)table_options] [select_statement]
例:craete database basic;
use basic;
create table basic(
no char(4)
name char(10)
id char(10));
create_definition:
col_name type [not null | null] [default default_value] [auto_increment]
[primary key] [reference_definition]
or primary key (index_col_name,…)
or key [index_name] key(index_col_name,…)
or index [index_name] (index_col_name,…)
or unique [index] [index_name] (index_col_name,…)
or [constraint symbol] foreign key index_name (index_col_name,…)
[reference_definition]
or check (expr)
资料结构(type):
资料型态说明。
tinyint 有符号的范围是-128到127, 无符号的范围是0到255。
smallint 有符号的范围是-32768到32767, 无符号的范围是0到65535。
mediumint 有符号的范围是-8388608到8388607, 无符号的范围是0到16777215。
int 有符号的范围是-2147483648到2147483647, 无符号的范围是0到4294967295。
integer int的同义词。
bigint 有符号的范围是-9223372036854775808到 9223372036854775807,无符号的范围是0到18446744073709551615。
float 单精密浮点数字。不能无符号。允许的值是-3.
402823466e+38到- 1.175494351e-38,0 和1.175494351e-38到3.
402823466e+38。
double 双精密)浮点数字。不能无符号。允许的值是- 1.
7976931348623157e+308到-2.2250738585072014e-308、 0和2.2250738585072014e-308到1.
7976931348623157e+308。
double precision double的同义词。
real double的同义词。
decimal decimal值的最大范围与double相同。
numeric decimal的同义词。
date 日期。支援的范围是'1000-01-01'到'9999-12-31'。
datetime 日期和时间组合。支援的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'
timestamp 时间戳记。范围是'1970-01-01 00:00:00'到2024年的某时。
time 一个时间。范围是'-838:59:59'到'838:59:59'。
year 2或4位数字格式的年(内定是4位)。允许的值是1901到2155。
char 固定长度,1 ~ 255个字元。
varchar 可变长度,1 ~ 255个字元。
tinyblob
tinytext 最大长度为255(2^8-1)个字符。
mediumblob
mediumtext 最大长度为16777215(2^24-1)个字符。
longblob
longtext 最大长度为4294967295(2^32-1)个字符。
enum 一个enum最多能有65535不同的值。
set 一个set最多能有64个成员。
index_col_name:
col_name [(length)]
reference_definition:
references tbl_name [(index_col_name,…)
[match full | match partial]
[on delete reference_option]
[on update reference_option]
reference_option:
restrict | cascade | set null | no action | set default
table_options:
type = isam | myisam | heap]
or max_rows = #
or min_rows = #
or **g_row_length = #
or comment = string"
or auto_increment = #
select_statement:
[ |ignore | replace] select … some legal select statement)
删除资料表 drop table 资料表名;
语法:drop table [if exists] tbl_name [,tbl_name,…]
改变资料表结构(新增/删除栏位、建立/取消索引、改变栏位资料型态、栏位重新命名)
语法:alter [ignore] table tbl_name alter_spec [,alter_spec …]
alter_specification:
add [column] create_definition [first | after column_name ]
or add index [index_name] (index_col_name,…)
or add primary key (index_col_name,…)
or add unique [index_name] (index_col_name,…)
or alter [column] col_name
or change [column] old_col_name create_definition
or modify [column] create_definition
or drop [column] col_name
or drop primary key
or drop index key_name
or rename [as] new_tbl_name
or table_option
范例:栏位重新命名。
mysql> alter table t1 change a b integer;
将资料表 t1 栏位 a 改名为 b (其资料型态是 integer)
改变栏位资料型态。
mysql> alter table t1 change b b bigint not null;
mysql> alter table t1 modify b bigint not null;
将资料表 t1 栏位 b 的资料型态改为 bigint not null
mysql> create table t1 (a integer,b char(10));
mysql> alter table t1 rename t2;
将资料表 t1 改名为 t2
mysql> alter table t2 modify a tinyint not null, change b c char(20);
将资料表 t2 栏位 a 资料型态由 integer 改为 tinyint not null ,栏位 b 改名为 c 资料型态改为 char(20)
mysql> alter table t2 add d timestamp;
在资料表 t2 增加新栏位 d 资料型态是 timestamp
mysql> alter table t2 add index (d), add primary key (a);
在资料表 t2 ,对 d 栏位做索引,并以栏位 a 作为主索引键。
mysql> alter table t2 drop column c;
删除栏位 c
mysql> alter table t2 add c int unsigned not null auto_increment, add index (c);
新增栏位 c,并做索引(做索引的栏位必须为 not null )
资料表最佳化 optimize table 资料表名。
语法:optimize table tbl_name
栏位长度有变动、删除大量资料,都应进行资料表最佳化。
三、纪录的操作。
插入一笔或多笔纪录 insert into 资料表(栏位1,栏位2,……values(值1,值2,……值1,值2,……
(mysql 3.22.5 以後可插入多笔记录)
语法:insert [low_priority | delayed] [ignore]
[into] tbl_name [(col_name,…)
values (expression,…)
or insert [low_priority | delayed] [ignore]
[into] tbl_name [(col_name,…)
select …
or insert [low_priority | delayed] [ignore]
[into] tbl_name
set col_name=expression, col_name=expression, …
范例:mysql> insert into tbl_name (col1,col2) values(15,col1*2);
不可写成。mysql> insert into tbl_name (col1,col2) values(col2*2,15);
因为:栏位 col1 的值先填入後,才可以计算栏位 col2
从档案读入资料。
语法:load data [local] infile 'file_' replace | ignore]
into table tbl_name
[fields
[terminated by '\t'] 每一栏位以某字元分开(内定是 tab)
[optionally] enclosed by "]每一栏位以某字元括住(内定是不使用括号)
[escaped by '\
[lines terminated by ' 设定换行的字元(内定是 )
[ignore number lines] 忽略最前面几行(最前面几笔记录不抄进来)
[(col_name,…)
范例:mysql> use db1;
mysql> load data infile ".into table
从目前 mysql 目录读入
mysql> load data infile ".into table teacher fields terminated by '
从目前 mysql 目录(我的在 /var/lib/mysql )读入 ,每一栏位以空白分开。
mysql> load data infile ''into table persondata (col1,col2,…)
只将 里某些栏位的资料抓过来。
删除纪录 delete [low-priority] from 资料表名 where 条件 [limit rows]
语法:delete [low_priority] from tbl_name
[where where_definition] [limit rows]
low-priority 是等到没有用户端使用时再删。
limit rows 限制删除纪录的笔数。
范例:mysql> delete from 资料表名;
删除所有纪录。
mysql> delete from 资料表名 where 1>0;
删除所有纪录,但速度较慢,方便在萤幕上看。
更新一笔纪录 (语法与 insert 相同)
replace into 资料表(栏位1,栏位2,……values(值1,值2,……
语法:replace [low_priority | delayed]
[into] tbl_name [(col_name,…)
values (expression,…)
or replace [low_priority | delayed]
[into] tbl_
英语重要语法
引导语 看进去的东西,不是口才 讲出来的,才是口才 吸收进去的,不是口才,表达出来的才是口才。我们知道,口才是一项能力,而能力一定是通过训练修炼而成的。这就要求我们经常开口,所谓 拳不离手,曲不离口,学习口才也要不断地开口开口再口!1 朗读朗诵。自己读书,大声地读出来。每天坚持朗读一些文章,既练习口...
韩语重要语法
韩国语在世界各国语言中,属于粘着语,主要依靠词尾的变化来表现其语法关系,是表现力很丰富的一种语言。从学习韩国语的实际需要出发,我们主要从三大部分叙述现代韩国语语法,即词类概论,词法,句法。词类 词按其意义,形态及其在句子中的功能分为若干类,叫做词类。韩语的词通常分为八大类。即 名词,数词,代词 合起...
语法的重要
分析 录音说马戏团表演的地方叫marquee,当然没人知道marquee是什么东西,所以要往后听,听到canvas portable building,帆布可移动建筑,也就是帐篷,如果听不懂可以再往后听,green space or car park rather than theatre or s...