改写历史~
朝着数据库里面添加数据,先看上一章结尾的ALTER例子:
ALTER TABLE my_contacts ADD COLUMN contact_id INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (contact_id);这时候我们要加一个列存放电话号码: ALTER TABLE my_contacts ADD COLUME phone VARCHAR(11); 如果我们要电话列放在 first_name 列后面,应该: ALTER TABLE my_contacts ADD COLUME phone VARCHAR(11) AFTER first_name; 当然也有 BEFORE/ LAST/ SECOND等等...以此类推
=======================================================
修整一个表:
首先如果表名称不太对,可以改为:
ALTER TABLE projekts RENAME TO project_list;然后修改列名称,修改列的同时注意是不是要修改列的属性?比如存储类型,NULL之类的:
ALTER TABLE project_list CHANGE COLUME number proj_id INT NOT NULL AUTO_INCREMENT, ADD PRIMARY KEY (proj_id); 一条语句修改两个列: ALTER TABLE project_list CHANGE COLUMN descriptionofproj proj_desc VARCHAR(100), CHANGE COLUMN contracttoronjob con_name VARCHAR(30); 注意这里修改了数据类型,有可能导致数据丢失。
单纯修改数据类型还有别的方法:
ALTER TABLE project_list MODIFY COLUMN proj_desc VARCHAR(120);卸除名叫 start_date 的列:
ALTER TABLE project_list DROP COLUMN tart_date; 注意这也是删除了数据。================================================================
比如我们要选择一列里面的最后两个字符,City Name, XX
可以:
SELECT RIGHT(location, 2) FROM my_contacts;同理左边两个: SELECT LEFT(location, 2) FROM my_contacts;如果要选择逗号前面: SELECT SUBSTRING_INDEX(location, ',', 1) FROM my_contacts;
这里1表示第一个逗号,如果是2就是第二个逗号前面的内容:
SUBSTRING_INDEX 寻找单引号里面的字符串,取出它前面的所有内容,
location是列名称
=======================================================================
还有一些有意思的辅助函数:
截取一部分 your_string 字符串,截取起始位置为start_position,长度为length:
格式SUBSTRING(your_string, start_position, length):
SELECT SUBSTRING('San Antonio, TX', 5, 3);把整组字符串改为大写或者小写:
格式UPPER(your_string):
SELECT UPPER('uSa');格式LOWER(your_string):
SELECT LOWER('spaGHEtti');
反转字符串里面的字符排序:
格式REVERSE(your_string):
SELECT REVERSE('spaGHEtti');
返回清除多余空格后的字符串:
①清除左侧,格式LTRIM(your_string):
SELECT LTRIM(' dogfood ');①清除右侧,格式RTRIM(your_string):
SELECT RTRIM(' catfood ');返回字符串中的字符数量:
SELECT LENGTH('San Antonio, TX');===============================================================
改变每一行中同一列的值:
UPDATE table_name SET column_name = newvalue; 例如: UPDATE my_contacts SET state = RIGHT(location, 2);需要多次运行。