传智播客—SQL入门
今天可以换换脑子了,丢掉eclipse,玩玩sql了,虽然只是在命令行窗口
先说一下今天我遇到的问题吧,开始按照老师的部署,做的都很顺利,但是当建立好数据库之后,建立表结构的时候就出错了,原因是在配置mysql的时候,权限配置错了,所以说千里之堤毁于蚁穴,害的我整了一个中午,这时提示的错误是ERROR 1005: Can't create table (errno: 121),出现这个错误还有一种可能就是外关键字名字重复的错误,即使是在不同的表中,外关键字的名字也不能重复。
还有一种错误提示的是150的错误,这类错误包括3种情况:
1. 外键和被引用外键类型不一样,比如integer和double
2. 找不到要被引用的列
3. 表的字符编码不一样
哈哈,把所有的错误尽可能的让他暴露出来
当你把数据库都配置好了之后,进入命令行窗口,输入mysql -u root -p 这时会提示你输入password,我设置的是root,然后输入show databases;如果出现database的目录就对了,注意这里要输入“;”一般情况下,它只有碰到分号才会执行你输入的语句。
很多人分不清数据库服务器、数据库和表的关系,现在就简述一下:
一个数据库服务器可以管理多个数据库,一般一个应用程序对应于一个数据库;
一个数据库可以管理多个表,每个表一般对应于一个实体;
表为数据的实际存储位置。
由于以后会频繁的跟数据库打交道,所以对数据库的增删改查还是很重要的,授人以鱼不如授人以渔,下面就说一下它们的声明
查询表中信息
SELECT [DISTINCT] *|{column1, column2. column3..} from table;
向表中插入信息
INSERT INTO table [(column [, column...])] VALUES (value [, value...]);
update语句
UPDATE tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] ;
删除语句
delete from tbl_name [WHERE where_definition];
这里要注意一个问题(差点忘记了,在设置字符集的时候,比如是UTF-8,在设置的时候是没有“-”的):
下面就举个的例子吧:
//创建一个数据库
create database mydb character set utf8 collate utf8_general_ci;
show databases;
use mydb;
//创建一个表结构
create table employee
(
id int,
name varchar(40),
sex varchar(10),
birthday date,
entry_date date,
job varchar(100),
salary double,
resume text
)character set utf
相关文档:
如何用SQL语言选择表中的第二条第三条第N条记录
--ID为唯一性就行了
select top 1 * from table
where ID not in(select top 1 ID from table)--第2条
select top 1 * from table
where ID not in(select top 2 ID from table)--第3条
......
关于:以前的某个程序安装已在安装计算机上创建挂起的文件操作 解决办法
以前装过sql server,后来删掉。现在重装,却出现“以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机”错误。无法进行下去。
步骤是:
1)添加/删除程序中彻底 ......
windows 集成验证:
<connectionStrings>
<add name="ConnectionStr" connectionString="Data Source=CAIPENG-PC;database=Test;Integrated Security=SSPI" providerName="System.Data.SqlClient"/>
</connectionStrings>
或者
<connectionStrings>
<add name=" ......
SQL SERVER登录用户在服务器上的权限
一个登录用户到底在SQL SERVER实例上有什么样的权限,下面以SQL SERVER2005为例来细数一下。
一.
首先查看该登录用户属于哪个固定服务器角色。所有SQL SERVER的登录用户和角色都会在master.sys.server_principal视图上有一条记录。而记录登录用户属于什么服务器角色的视图是master. ......
This has some predictable results that we can use for building queries. The root is always of the form (left = 1, right = 2 * (SELECT COUNT(*) from TreeTable)); leaf nodes always have (left + 1 = right); the BETWEEN predicate defines the subtrees; and so on. Here are some common queries that you can ......